У меня странная проблема в моем клиентском приложении. Вот немного фона:
- Я использую один сеанс для каждой модели представления.
- Модели моего вида взаимодействуют друг с другом с помощью Посредника .
У меня есть модель административного представления, в которой я отображаю список своих сущностей. Я могу отредактировать сущность, в результате чего открывается новая модель представления, которая получает идентификатор сущности, подлежащей редактированию через посредника.
Когда пользователь нажимает кнопку «Редактировать», моя модель представления редактирования обновляет сущность со своим собственным сеансом и снова использует посредник с отредактированным идентификатором сущности, чтобы попросить модель основного представления обновить список сущностей.
Допустим, я изменил логическое свойство Visible для сущности.
Когда я редактирую сущность, я вижу вызов UPDATE в NHibernate, обновляющий сущность в базе данных.
Когда я возвращаюсь в модель основного вида, я делаю 2 вещи:
- Я прошу у NHibernate обновленную сущность
- Я обновляю список объектов, чтобы отобразить все объекты, с помощью специального фильтра. (Показать все видимые объекты, например.)
Что странно, так это то, что сущность, которую я получаю от NH в первой инструкции, все еще имеет старое значение свойства Visible, но в списке моих видимых сущностей отредактированная сущность отсутствует ...
Вот две функции репозитория, которые я использую, чтобы соответственно получить сущность и получить список всех видимых сущностей:
public virtual TEntity Get(int id)
{
return Session.Get<TEntity>(id);
}
public IEnumerable<Player> GetAllPlayersSortedByLastName(bool visible = true)
{
return from player in Session.Linq<Player>()
where player.Visible == visible
orderby player.LastName
select player;
}
Что не так с моим кодом? Почему сущность, которую я возвращаю из NH в моей модели основного вида после ее редактирования, не имеет правильных значений?
Заранее спасибо