是否可以设置NHibernate来加载/持久化类的非公共属性?例如,我可能有一个Item类,如下所示。
public class Item
{
public int ItemID {get; set;}
public string Name{get; set;}
}
使用以下映射:
<class name="RCL.Item" table="Items">
<id name="ItemID" type="Int32" column="ItemID">
<generator class="native"/>
</id>
<property name="Author" />
</class>
但是我真的不希望我的Item类的使用者能够更改ItemID字段。我可以限制对ItemID的set访问器的访问吗?如果是这样我应该将它设置为什么?私人,受保护,内部,受保护的内部?
答案 0 :(得分:10)
来自NHibernate教程:
不需要将属性声明为公共属性 - NHibernate可以持久保存具有内部保护的属性 内部或私人能见度。
只需将ItemID设置为私有
即可