Rising

自我学习记录,方便使用时查找。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

由于今天才开始学习Castle ActiveRecord,碰到一些问题,不确定是否如为自己所理解的那样,但按以下方法处理已完成程序功能。

由于Castle ActiveRecord官方下载的版本与其官方文档并不完全对应,所以,按其ActiveRecord Getting Started所示内容完成代码会有一些问题:

1.引用的程序集用http://www.castleproject.org/castle/download.html 中的ActiveRecord 3.0 RC - March 14th, 2011,把所有DLL都引用进去,除了

Castle.ActiveRecord.Web.dll没有引用到WINFORM程序中。

2.配置文件中需要添加另一条:

<add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
最终形成:

<?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=testDB;Integrated Security=SSPI" />
    <add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
  </config>
</activerecord>
其中
<add key="dialect" value="NHibernate.Dialect.MsSql2005Dialect" />
可直接用于连接sql server 2008

3.如果需要使用代码通过程序启动时执行代码:

ActiveRecordStarter.CreateSchema();
来创建数据库表,则必须在所有的表对应类中,指定主键属性,而且对于标识列还需要使用属性:

[PrimaryKey(PrimaryKeyType.Identity, "字段名")]
 来保证能正确创建表

posted on 2012-02-27 22:29  Rising  阅读(911)  评论(0编辑  收藏  举报