У меня есть служба, которую я пытаюсь переместить в NHibernate.Ошибка кэширования NHibernate
Theres a Get метод, который вызывается с помощью кнопки отмены на экране. При первом вызове метода Get (первый раз, когда я отменяю изменение) отмена фактически происходит, и значение возвращается.
Во второй раз, когда я отменяю, он просто игнорирует отмену и сохраняет новое значение ?!
private ISession _session;
private ISession GetSession()
{
return _session ?? (_session = _sessionFactory.OpenSession());
}
public MappingCollection Get(string id)
{
var session = GetSession();
var mappingCollection = session.Get<MappingCollection>(id);
return mappingCollection;
}
Однако если изменить Get (идентификатор строки), чтобы включить обновление ...
public MappingCollection Get(string id)
{
var session = GetSession();
var mappingCollection = session.Get<MappingCollection>(id);
session.Refresh(mappingCollection);
return mappingCollection;
}
Все работает - но, глядя с NHibernate Profiler он называет выбор дважды на первой операции .. Я знаю, что я мог бы добавить bool, чтобы убедиться, что он запущен, но я надеюсь, что это лучший способ!
Помогите пожалуйста? Thanks
нет, я поддерживаю сеанс для ленивой загрузки. Его первая операция запускается дважды, поскольку она загружает ее в кеш и обновляет ее. –