有人用C#3.5尝试过ActiveRecord Intro Sample吗? 我不知何故感觉样本完全错误或只是过时了。 XML配置完全错误:
<add key="connection.connection_string" value="xxx" />
应该是:
<add key="hibernate.connection.connection_string" value="xxx" />
(如果我理解nhibernate配置语法正确..)
我想知道我做错了什么。在用户模型上调用Count()时,我得到“无法执行ExecuteQuery for User”异常。
不知道这是什么。教程源与页面上的源有很大不同(最明显的是在XML配置中),它是一个VS2003示例,在大多数事情上都有不同的语法(没有泛型等)。
有什么建议吗? ActiveRecord看起来很棒......
答案 0 :(得分:1)
在NHibernate 2.0版中删除了密钥的'hibernate'部分。 这个版本适用于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,在这种情况下,您确实需要在配置条目中添加“hibernate”前缀。或者你可以从后备箱下载一个build城堡,它应该与NH 2.0一起运行。后一种方法的问题在于,NH 2.0中引入的一些其他重大变化可能无法在快速启动中修复。
答案 1 :(得分:1)
(这对于评论帖来说太长了)
[@ Tigraine]根据您对我之前回答的评论,看起来错误不在于配置,而在于您的某个实体。删除“休眠”更正了配置,以便它为您提供真正的错误,这似乎是实体“发布”未正确归因于ActiveRecord创建其映射。
如果你进一步了解它给出的错误,它可能有一些关于“发布”失败的细节。
一些常见的事情包括:
[ActiveRecord]
属性。[PrimaryKey]
属性的属性。PluralizeTableNames
为“true”,则为“Posts”)。virtual
(这一次一直让我失望)。答案 2 :(得分:0)
删除所有配置条目的“hibernate.
”部分。你的第一个例子是正确的。