Как сделать первичный ключ доступным только для чтения в Fluent NHibernate? - PullRequest
0 голосов
/ 18 августа 2010

При использовании Fluent NHinbernate Как сделать PK Только для чтения Я попытался сделать его внутренним на сеттере, но получаю следующее:

----> NHibernate.InvalidProxyTypeException: Следующие типы не могут быть использованы как прокси: Домен. Адрес: метод set_AddressId должен быть «публичный / защищенный виртуальный» или «защищенный внутренний виртуальный»

мое отображение выглядит так:

Id(x => x.AddressId).GeneratedBy.Identity();

Есть идеи, как это сделать?

Ответы [ 2 ]

1 голос
/ 18 августа 2010

Адрес вашей собственности должен быть защищенным и виртуальным, например:

public class MyClass
{
  public virtual int AddressId { get; protected set;}
}
0 голосов
/ 18 августа 2010

Вам нужно сделать все методы и свойства виртуальными. Ex.

public virtual int AddressId {get; private set;}

Все зависит от того, какая у вас линия наследования и что такое. Причина объявления его виртуальной - это то же самое, что издеваться над классом. NHibernate должен иметь возможность переопределять все свойства для отложенной загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...