Castle ActiveRecord 学习之 .net快速开发 (4)

来源:互联网 发布:三国杀陈群强度 知乎 编辑:程序博客网 时间:2024/05/16 11:23

四、框架的初始化
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();
        }
    }
}
(就是在写好类的情况下自动创建表)
现在我的事情并未做完,我们要用上面的类开始自己真正的代码。我们可以展示出更多的方法来实现数据库的相关操作。
继续使用这些类。

原创粉丝点击