sql-server-2008 - Fluent Nhibernate 和 Sql Server 私有(private) setter 错误

标签 sql-server-2008 fluent-nhibernate compiler-errors setter

我正在尝试使用带有 sql server express 的 fluent nhibernate 完成一些第一步,以在我的项目中添加此功能。
但是遇到了一些错误。由于我是休眠的新手,有一段时间无法解决问题。
我有一个实体

Id { get; private set; }

访问器。并且该实体映射到 sql server 中具有标识 {1,1} 列的表。
但是在创建 session 工厂的过程中,我得到了一个错误:
The following types may not be used as proxies:Entity: method set_Id should be 'public/protected virtual' or 'protected internal virtual'

我知道私有(private) setter 用于封装此属性的设置,但是为什么会出现此错误?
PS: fluent for nhibernate 网站上的示例正在使用 sqllite db,一切都很好。

最佳答案

这是一个让包括我在内的许多 NH/FNH 用户感到悲痛的问题。

直到最近,NHibernate 还允许使用代理对象的私有(private) setter。但是从 NH 3.2 开始,不再允许使用私有(private)二传手 - 它们必须是“' public/protected virtual'或'protected internal virtual '”,如错误消息所述。

对于现有的许多 FNH/NH 示例代码来说,这是一个重大更改,并且对新手来说尤其令人困惑。

关于sql-server-2008 - Fluent Nhibernate 和 Sql Server 私有(private) setter 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10227341/

相关文章:

java - 为什么说错误: ';' expected when I compile it?

javascript - javascript 的 "on the fly"编译实际上是如何工作的?

sql - 使用日期表达式查询运行缓慢,但使用字符串文字查询运行速度很快

c# - 使用 NHibernate 跨多个数据库填充对象

SQL Server WHERE 条件不考虑空格

database - 使用 NHibernate 维护插入时的参照完整性

c# - Fluent NHibernate 加入不使用主键

Java 未处理的异常

sql - 遍历行以与sql中的ascii值进行比较?

sql - TSQL - 递归 CTE 效率低下 - 需要替代方案