Может ли NHibernate устанавливать непубличные свойства? - PullRequest
4 голосов
/ 20 октября 2010

Можно ли настроить 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? Если так, что я должен установить это? Частный, охраняемый, внутренний, защищенный внутренний?

1 Ответ

10 голосов
/ 20 октября 2010

Из учебника NHibernate:

Свойства не должны объявляться общедоступными - NHibernate может сохранять свойство с внутренней, защищенной, защищенной внутренней или частной видимостью.

Просто установите ItemID для приватного

...