1

有没有人尝试过使用 C# 3.5的 ActiveRecord介绍示例?我不知何故感觉样本完全错误或过时了。XML 配置完全错误:

<add key="connection.connection_string" value="xxx" />

应该 :

<add key="hibernate.connection.connection_string" value="xxx" />

(如果我理解 nhibernate 配置语法正确..)

我想知道我做错了什么。在用户模型上调用 Count() 时出现“无法为用户执行 ExecuteQuery”异常。

不知道这可能是什么。教程源代码与页面上的源代码有很大不同(最明显的是 XML 配置),它是一个 VS2003 示例,在大多数情况下具有不同的语法(没有泛型等)。

有什么建议么?ActiveRecord 看起来很棒..

4

3 回答 3

1

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 中引入的其他一些重大更改可能无法在快速启动中修复。

于 2008-09-25T13:29:56.417 回答
1

(这对于评论帖子来说太长了)

[@Tigraine] 从您对我之前的回答的评论看来,错误不在于配置,而在于您的一个实体。删除“休眠”更正了配置,以便它为您提供真正的错误,这似乎是实体“发布”没有正确归因于 ActiveRecord 以创建其映射。

如果您进一步了解它给出的错误,它可能有一些关于“发布”失败的细节。

一些常见的事情包括:

  • 该类没有该[ActiveRecord]属性。
  • 该属性没有[PrimaryKey]属性。
  • 没有名为“Post”的匹配表(如果PluralizeTableNames为“true”,则为“Posts”)。
  • 属性属性没有匹配的列。
  • 您的属性属性和公共方法不是virtual(这个总是让我很生气)。
于 2008-09-25T13:40:52.287 回答
0

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

于 2008-09-25T13:25:44.290 回答