如何解决NHibernate为什么要求自动属性具有“受保护的内部”可见性?
| 过去可以使用NHibernate使用私有设置器来映射自动属性,但是从3.2版开始,情况不再如此(不是不替换实体验证器),请参见NH dev讨论。 我理解“ 0”的要求,但是为什么要“ 1”?这样会破坏封装,并且感觉很脏。 唯一的选择是回到支持领域吗? 更新:令人尴尬,但事实如此,事实证明不需要ѭ1。因此,这是在回退到后备字段或使用受保护的设置器之间避免在构造函数中设置值或面临难以跟踪错误的风险之间的折衷。感谢Fabio和@Nexus指出我的错误。解决方法
迈克尔
public string Foo { get; protected set; }
应该仍然可能,开发人员讨论is4ѭ可能会在使用惰性属性时导致错误。
,NHibernate很脏。它使用反射来访问属性和字段。
您甚至可以将private
属性和字段映射为数据点。
NHibernate完全忽略了它需要访问的元素的可见性。
,public class Class{
public string Foo { get; private set; }
}
Property(class=> class.Foo);
然后,您需要在配置中关闭代理验证:
Config.Proxy(p => {p.Validation = false});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。