Отображение свойства только для чтения без сеттера с использованием Fluent NHibernate

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

5
задан Brant Bobby 5 November 2010 в 21:19
поделиться