У меня есть класс домена, который выглядит следующим образом. Я хочу, чтобы NHibernate сохранял текущее значение LastUpdate
при вставке / обновлении, чтобы я мог использовать его в запросах, но игнорировать его при получении Foo
из базы данных и позволить самому объекту пересчитать значение, когда я действительно обращаюсь к нему.
public class Foo {
public DateTime LastUpdate {
get {
/* Complex logic to determine last update by inspecting History */
return value;
}
}
public IEnumerable<History> History { get; set; }
/* etc. */
}
Мое отображение для Foo
выглядит так:
public class FooMap : ClassMap<Foo> {
Map(x => x.LastUpdate)
.ReadOnly();
HasMany(x => x.History);
// etc...
}
Я думал, что ReadOnly ()
было тем, что Я хотел этого добиться, но когда я пытаюсь создать SessionFactory, я получаю следующее исключение:
Ошибка: FluentNHibernate.Cfg.FluentConfigurationException: при создании SessionFactory использовалась недопустимая или неполная конфигурация. См. Коллекцию PotentialReasons и InnerException для получения дополнительных сведений.
---> NHibernate.PropertyNotFoundException: не удалось найти установщик для свойства LastUpdate в классе Foo.
Свойство не имеет установщика, потому что его не следует устанавливать, только читать из . Правильно ли здесь ReadOnly ()
? Если нет, то что?
(NHibernate v3.0b1, Fluent NHibernate v1.1)