由于今天才开始学习Castle ActiveRecord,碰到一些问题,不确定是否如为自己所理解的那样,但按以下方法处理已完成程序功能。
由于Castle ActiveRecord官方下载的版本与其官方文档并不完全对应,所以,按其所示内容完成代码会有一些问题:
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, "字段名")]
来保证能正确创建表