Свободный NHibernate: Как отобразить весь класс как ReadOnly?

У меня есть несколько классов, которые читают из очень деликатных таблиц, поэтому я хочу, чтобы они использовались NHibernate как "ReadOnly". Установление.ReadOnly() на каждой карте поля действительно небрежно, и я не уверен, что доверяю этому. Как настроить класс так, чтобы он был полностью доступен только для чтения, как я легко могу сделать с традиционными сопоставлениями XML?

Изменить: ответ работает. Я ожидал, что он выдаст исключение, если я попытаюсь сохранить поверх объекта ReadOnly (), но он просто молча делает это.

Благодарю.

2 ответа

Решение

С Fluent NHibernate это так просто, как:

class EntityMap : ClassMap<Entity>
{
    public EntityMap()
    {
        ReadOnly();

        // Mappings
    }
}

Свойство ReadOnly() на самом деле НЕ работает так, как вы ожидаете. Использование этого свойства гарантирует, что полученные вами объекты доступны только для чтения, поэтому вы не можете их ОБНОВИТЬ. Однако это НЕ препятствует созданию новых записей или даже удалению существующих записей в базе данных!

Другие вопросы по тегам