.NET 3.5损坏的Castle-ActiveRecord教程?
有没有人尝试过C3.5的ActiveRecord简介样本?
我以某种方式感到样本完全错误或者已过时。 XML配置完全是错误的:
<add key="connection.connection_string" value="xxx" />
应该 :
<add key="hibernate.connection.connection_string" value="xxx" />
(如果我了解nhibernate config语法的权利。。)
我想知道我在做什么错。在用户模型上调用Count()时,出现"无法为用户执行ExecuteQuery"异常。
不知道这可能是什么。教程的源代码与页面上的源代码(在XML配置中最明显)有很大不同,它是一个VS2003示例,在大多数情况下都具有不同的语法(没有泛型等)。
有什么建议? ActiveRecord看起来很棒。
解决方案
删除所有配置条目的"休眠"部分。第一个示例是正确的示例。
密钥的"休眠"部分已在NHibernate 2.0版中删除。
此版本适用于NHibernate 2.0及更高版本:
<add key="connection.connection_string" value="xxx" />
编辑:
我看到快速入门不包含Castle和NHibernate的二进制文件。我们必须已经从某处下载了二进制文件。如果我们可以提供NHibernate.dll文件的版本号,将很有帮助。
令人困惑的是,至少有一些快速入门已更新为NHibernate(NH)2.0的最新版本,但是最新的"适当的" Castle版本仍然是1.0 RC3(现在已经差不多一年了),其中不包括NH 2.0。
我们可以采取两种方式。我们可以继续使用Castle RC3,在这种情况下,我们确实需要在配置条目中添加"休眠"前缀。或者,我们可以从后备箱中下载Castle的构建,该构建应针对NH 2.0运行。后一种方法的问题在于,NH 2.0中引入的其他一些重大更改可能无法在快速入门中得到解决。
(对于评论帖子来说太长了)
[@Tigraine]从我们对我上一个答案的评论看来,错误似乎不在于配置,而在于一个实体。删除"休眠"可更正配置,以便使我们看到实际的错误,这似乎是由于实体" Post"未正确分配给ActiveRecord创建其映射。
如果进一步查明它给出的错误,则可能有一些有关"发布"失败的详细信息。
一些常见的事情包括:
- 该类没有[ActiveRecord]属性。
- 没有具有[PrimaryKey]属性的属性。
- 没有匹配的表称为" Post"(如果" PluralizeTableNames"为" true",则为" Posts")。
- 没有用于属性的匹配列。
- 属性和公共方法不是"虚拟的"(这总是使我丧命)。