Запрет Nhibernate от сохранения определенной коллекции в классе - PullRequest
1 голос
/ 28 октября 2010

У меня есть объект Sponsor, коллекция которого выглядит следующим образом ...

public virtual IDictionary<SettingId, object> SettingValueDefaults { get; set; }

Они фактически извлекаются как подмножество таблицы большего размера.Мне нужно иметь возможность читать из них, и это работает правильно.

Однако я хотел бы иметь возможность вносить изменения во время выполнения в эту коллекцию и иметь nhibernate игнорировать эти изменения, или даже пытатьсясохранить коллекцию вообще.

Опять же, мне нужен nhibernate для извлечения данных, чтобы я мог использовать его в коде, но не сохранять изменения данных, которые я вносил в коллекцию во время выполнения.

Отображение для этой коллекцииниже:

 <map name="SettingValueDefaults" cascade="none">
   <cache usage="read-write" region="Sponsors" />
   <key not-null="true" column="SponsorId"/>
   <index column="SettingId" type="HealthTools.Core.Domain.Model.Sponsor.Settings.SettingId, HealthTools.Core"/>
   <element column="DefaultValue" type="HealthTools.Infrastructure.DataAccess.SqlVariant, HealthTools.Infrastructure"/>
   <loader query-ref="GetDefaultSettingValues" />
  </map>

Вот ошибка, которую я получаю от Nhibernate, когда пытается сохранить объект Спонсора.

"Неверное имя объекта" HealthTools.dbo.SettingValueDefaults "

Это происходит потому, что нет таблицы SettingsValueDefaults, карта просто извлекает данные из таблицы Sponsor.Settings через функцию GetDefaultSettingValues.

1 Ответ

2 голосов
/ 28 октября 2010

Вы захотите сделать его доступным только для чтения:

<map name="SettingValueDefaults" cascade="none" access="readonly">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...