我正在尝试用流畅的nhibernate与sql server express完成第一步,在我的项目中添加此功能.
但是有些错误.因为我是nhibernate的新手,一段时间无法解决问题.
我有一个实体
但是有些错误.因为我是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'
我知道私有的setter用于封装这个属性的设置,但为什么我会得到这个错误呢?
PS:对于nhibernate流利的网站上的例子是使用sqllite db,一切都很好.
解决方法
@H_502_17@ 这个问题给包括我在内的许多NH / FNH用户带来了悲痛.直到最近,NHibernate已经允许私有的setter使用代理对象.但是从NH 3.2开始,不再允许私有设置者 – 它们必须是“’公共/受保护的虚拟’或’受保护的内部虚拟’”,正如错误信息所示.
对于许多FNH / NH样本代码而言,这是一个重大变化,对于新手来说尤其令人困惑.