在VS 2005 下搭建Castle Active Record + Access 开发环境实例
Posted on 2007-03-31 00:17 人品的天空 阅读(1653) 评论(9) 收藏 举报由于为了连接Access数据库,需要NHibernateContrib,目前下载到的版本是NHibernateContrib-1.0.4.0,其中的NHibernate也是1.0.4.0版。
而Castle-net-2.0-rc2中所带的ActiveRecord引用的NHibernate是1.0.2.0版,所以首先要重新编译ActiveRecord。
打开Castle-net-2.0-rc2源码中的ActiveRecord解决方案。
然后在VS2005中新建一个Asp.Net站点,引用Castle.ActiveRecord,NHibernate,NHibernate.JetDriver。
然后编写一个TestUser类
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Castle.ActiveRecord;
/// <summary>
/// TestUser 的摘要说明
/// </summary>
[ActiveRecord("TestUsers")]
public class TestUser : ActiveRecordBase<TestUser>
{
public TestUser()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private long _Id;
private string _UserName;
[PrimaryKey]
public long Id
{
get { return _Id; }
set { _Id = value; }
}
[Property("username", NotNull=true, Length=25)]
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
}
在Web.Config中添加以下配置:
注:所用的Access数据库文件data.mdb放在App_Data目录下
<configSections>
<section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord"/>
</configSections>
<activerecord isWeb="true">
<config>
<add key="hibernate.connection.driver_class" value="NHibernate.JetDriver.JetDriver, NHibernate.JetDriver"/>
<add key="hibernate.dialect" value="NHibernate.JetDriver.JetDialect, NHibernate.JetDriver"/>
<add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
<add key="hibernate.connection.connection_string" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|data.mdb"/>
</config>
</activerecord>
在Global.asax的Application_Start方法中输入以下代码:
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
Castle.ActiveRecord.Framework.IConfigurationSource source = System.Configuration.ConfigurationManager.GetSection("activerecord") as Castle.ActiveRecord.Framework.IConfigurationSource;
Castle.ActiveRecord.ActiveRecordStarter.Initialize(typeof(TestUser).Assembly, source);
}之后就可以程序中使用了,例如:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
ActiveRecordStarter.CreateSchema();
}
protected void Button2_Click(object sender, EventArgs e)
{
TestUser user = new TestUser();
user.UserName = "test";
user.Save();
}
}页面上2个按钮,分别进行生成数据库和添加一条记录


浙公网安备 33010602011771号