NHibernate可以设置非公共属性吗?

时间:2010-10-19 23:48:16

标签: c# nhibernate private protected

是否可以设置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访问器的访问吗?如果是这样我应该将它设置为什么?私人,受保护,内部,受保护的内部?

1 个答案:

答案 0 :(得分:10)

来自NHibernate教程:

  

不需要将属性声明为公共属性    - NHibernate可以持久保存具有内部保护的属性   内部或私人能见度。

只需将ItemID设置为私有

即可