.NET 3.5破坏了Castle-ActiveRecord教程吗?

时间:2008-09-25 13:22:12

标签: orm .net-3.5 documentation castle-activerecord

有人用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看起来很棒......

3 个答案:

答案 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]属性的属性。
  • 没有名为“Post”的匹配表(如果PluralizeTableNames为“true”,则为“Posts”)。
  • 属性属性没有匹配的列。
  • 您的归因属性和公共方法不是virtual(这一次一直让我失望)。

答案 2 :(得分:0)

删除所有配置条目的“hibernate.”部分。你的第一个例子是正确的。