У меня есть класс домена, который выглядит следующим образом.Я хочу, чтобы 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)