使用Fluent NHinbernate时如何制作PK只读我试图将其设置为内置设置器,但我明白了:
----> NHibernate.InvalidProxyTypeException: 以下类型不能用作 代理:Domain.Address:方法 set_AddressId应该是 'public / protected virtual'或 'protected internal virtual'
我的映射看起来像:
Id(x => x.AddressId).GeneratedBy.Identity();
任何想法如何做到这一点?
答案 0 :(得分:1)
您的属性AddressId应该受到保护和虚拟,例如:
public class MyClass
{
public virtual int AddressId { get; protected set;}
}
答案 1 :(得分:0)
您需要将所有方法和属性设为虚拟。实施例
public virtual int AddressId {get; private set;}
这完全取决于你的继承行等等。将其声明为虚拟的原因与模拟类相同。 NHibernate需要能够覆盖延迟加载的所有属性。