四、框架的初始化
Castle ActiveRecord 在应用它的类之前必须初始化。只有在程序启用的时候初始一次。在这里我们假设我们开发的是WinForm应用程序,在窗体显示之前我们必须为它初始化。
ActiveRecord也需要配置一次信息来告诉它是用了哪一个数据库,怎么样和它会话。其实这就是NHibernate所用到的配置,所以你现在要决定在哪里保存这些配置。
ActiveRecord配置
我们可以选择不同的方式来配置ActiveRecord里的配置也可以选择保存到哪里。在文档里有更详细的说明。为了简单起见我们将使用一个简单的独立的XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<activerecord>
<config>
<add
key="connection.driver_class"
value="NHibernate.Driver.SqlClientDriver" />
<add
key="dialect"
value="NHibernate.Dialect.MsSql2005Dialect" />
<add
key="connection.provider"
value="NHibernate.Connection.DriverConnectionProvider" />
<add
key="connection.connection_string"
value="Data Source=.;Initial Catalog=test;Integrated Security=SSPI" />
</config>
</activerecord>
注意:这里的配置是用的MS SQL Server 2005.如果你是用的其他的数据库你就需要改一下这里面的驱动了。详细怎么请参考 Xml Configuration Reference 文档。
现在我们就保存这个文档并命名为:appcofig.xml。下面一段代码我们来访问这个文件。
namespace BlogSample
{
using System.Windows.Forms;
using BlogSample.UI;
using Castle.ActiveRecord;
using Castle.ActiveRecord.Framework.Config;
public class App
{
public static void Main()
{
XmlConfigurationSource source = new XmlConfigurationSource("appconfig.xml");
}
}
}
初始化ActiveRecord
最后我们来通过这个配置文件来初始ActivRecord。我们也需要来指定ActiveRecord的检查类型。为此我们可以指定一个程序集或一个程序集数组。为了简单我们就只用一个数组类型:
(我在这里的理解是ActivRecord为我们提供了自己检查功能,可能包括语法和逻辑错误吧,如果只有几个类就单独的列出来,要有多个的话可以生成一个dll文件来做检查。这只是一个排错过程。。。)
namespace BlogSample
{
using System.Windows.Forms;
using BlogSample.UI;
using Castle.ActiveRecord;
using Castle.ActiveRecord.Framework.Config;
public class App
{
public static void Main()
{
XmlConfigurationSource source = new XmlConfigurationSource("appconfig.xml");
ActiveRecordStarter.Initialize( source, typeof(Blog), typeof(Post), typeof(User) );
}
}
}
做完这一步我们为应用ActiveRecord铺平了道路。
创建表
你可以使用ActiveRecord来创建表:
public class App
{
public static void Main()
{
XmlConfigurationSource source = new XmlConfigurationSource("appconfig.xml");
ActiveRecordStarter.Initialize( source, typeof(Blog), typeof(Post), typeof(User) );
if (MessageBox.Show("Do you want to let ActiveRecord create the database tables?",
"Schema", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
ActiveRecordStarter.CreateSchema();
}
}
}
(就是在写好类的情况下自动创建表)
现在我的事情并未做完,我们要用上面的类开始自己真正的代码。我们可以展示出更多的方法来实现数据库的相关操作。
继续使用这些类。
Castle ActiveRecord 学习之 .net快速开发 (4)
最新推荐文章于 2024-09-14 10:15:35 发布