由于今天才开始学习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>
其中 <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 20083.如果需要使用代码通过程序启动时执行代码:
ActiveRecordStarter.CreateSchema();
来创建数据库表,则必须在所有的表对应类中,指定主键属性,而且对于标识列还需要使用属性:[PrimaryKey(PrimaryKeyType.Identity, "字段名")]
来保证能正确创建表