2010-08-18 1 views
0

При использовании Свободный NHinbernate Как сделать PK чтение только я пытался сделать его внутренний на сеттера, но я получаю это:Как сделать первичный ключ только для чтения в Fluent NHibernate?

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

моего отображение выглядит следующим образом:

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

любая идея, как это сделать?

ответ

1

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

public class MyClass 
{ 
    public virtual int AddressId { get; protected set;} 
} 
0

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

public virtual int AddressId {get; private set;} 

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

Смежные вопросы