Несколько классов NHibernate сопоставлены с одной и той же проблемой кэширования таблиц - PullRequest
0 голосов
/ 25 марта 2012

Возможно ли иметь следующие условия:

  1. Кэширование L2 включено в NHibernate
  2. Несколько классов отображаются в одной таблице
  3. Редактирование одного класса обновляет информацию в другом классе в кэше NHibernate L2.

В моем приложении для некоторых из моих больших объектов у меня есть «маленькие» классы с парой свойств для передачи данных, а затем «большие» версии для редактирования. Таким образом, я могу быстро загрузить список элементов, из которых пользователь может выбирать, а затем загрузить только остальные свойства, если пользователь хочет редактировать этот объект.

Я обнаружил, что если я отредактирую «большую» сущность, а затем попытаюсь извлечь «маленькую» сущность, информация о малой сущности не обновляется новой информацией (конечно, эта информация является общей для обоих классы). Я широко использую кэш L2, поэтому я предполагаю, что NHibernate не в состоянии отобразить изменения от большого объекта к маленькому объекту? Если это так, могу ли я отказаться от поддержки кеширования от небольших организаций? Я полагаю, что я мог бы также загрузить и сохранить маленькую версию одновременно с сохранением большой версии, хотя это кажется хаком (и на самом деле это больше, чем этот простой пример, поэтому я бы не стал этого делать) .

Действительно простая иллюстрация рассматриваемого домена:

/* EntityDto is just a base class with an Id */
public class SimpleAdDto : EntityDto<SimpleAdDto>
{
    public virtual string Name { get; set; }
    /* more properties */
}

public class FullAdDto : EntityDto<FullAdDto>
{
    public virtual string Name { get; set; }
    /* lots more properties */
}

Оба класса отображаются на одну и ту же базовую таблицу; FullAdDto просто имеет больше свойств. Если я изменяю имя FullAdDto, обновленное имя не отражается в SimpleAdDto в кэше.

Я вообще не экспериментировал с наследованием, решит ли это мою проблему, если у меня как-то будет FullAdD, чтобы быть подклассом SimpleAdDto?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...