У меня есть служба, с которой я пытаюсь перейти на NHibernate.
В сервисе есть метод 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, он вызывает дважды select при первой операции ... Я знаю, что могу добавить bool, чтобы посмотреть, запущен ли он, но я надеюсь, что есть лучший способ!
Может кто-нибудь помочь, пожалуйста? Спасибо