Используя Fluent NHiberanate, как отключить сопоставление непостоянного свойства - PullRequest
0 голосов
/ 13 апреля 2011

Все мои постоянные объекты имеют свойство, которое не должно сохраняться.

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

var autoMap = 
     AutoMap.AssemblyOf<BaseEntity>()
    .Where(type => type.Namespace != null && type.Namespace.Contains("Models"))
    .Conventions.AddFromAssemblyOf<IEntity>()
    .OverrideAll(map => map.IgnoreProperty("IsDummy")); 

Однако возвращается следующая ошибка:

System.TypeInitializationException: System.TypeInitializationException: инициализатор типа для «Core.Context» вызвал исключение.---> NHibernate.InvalidProxyTypeException: Следующие типы не могут использоваться в качестве прокси: Core.Models.MyEntity: метод get_IsDummy должен быть 'public / protected virtual' или 'protected внутренним виртуальным'

Thisприводит меня к мысли, что переопределение не сработало.(Core.Context - это класс, запускающий процесс сопоставления)

1 Ответ

1 голос
/ 13 апреля 2011

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

...