四、框架的初始化
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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.