天天看點

Castle ActiveRecord 學習之 .net快速開發 (4)

四、架構的初始化

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();

        }

    }

}

(就是在寫好類的情況下自動建立表)

現在我的事情并未做完,我們要用上面的類開始自己真正的代碼。我們可以展示出更多的方法來實作資料庫的相關操作。

繼續使用這些類。