如何在 Fluent NHibernate 中将主键设为只读?
使用 Fluent NHinbernate 时如何进行 PK Read only 我试图将其设置为 setter 内部,但我得到了这个:
----> NHibernate.InvalidProxyTypeException : 以下类型不得用作 代理:域.地址:方法 set_AddressId 应该是 “公共/受保护虚拟”或 “受保护的内部虚拟”
我的映射看起来像:
Id(x => x.AddressId).GeneratedBy.Identity();
任何想法如何做到这一点?
When using Fluent NHinbernate How do I make a PK Read only I tried to make it internal on the setter but I get this:
---->
NHibernate.InvalidProxyTypeException :
The following types may not be used as
proxies: Domain.Address: method
set_AddressId should be
'public/protected virtual' or
'protected internal virtual'
my mapping looks like:
Id(x => x.AddressId).GeneratedBy.Identity();
any Idea how to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的属性 AddressId 应受保护且虚拟,例如:
Your property AddressId should be made protected and virtual, eg:
您需要将所有方法和属性设为虚拟。前任。
这完全取决于您的继承线等。声明它为 virtual 的原因与模拟类相同。 NHibernate 需要能够覆盖延迟加载的所有属性。
You need to make all methods and properties virtual. Ex.
It all depends on what your line of inheritance and such is. The reason for declaring it virtual is the same as mocking a class. NHibernate needs to be able to override all the properties for lazy loading.