NHibernate缓存问题
我有一个服务,我正试图转移到NHibernate 服务上有一个Get方法,通过视图上的cancel按钮调用该方法。第一次调用Get方法时,第一次取消更改时,实际执行取消操作,并且返回值 第二次取消时,它只是忽略取消并保留新值NHibernate缓存问题,nhibernate,Nhibernate,我有一个服务,我正试图转移到NHibernate 服务上有一个Get方法,通过视图上的cancel按钮调用该方法。第一次调用Get方法时,第一次取消更改时,实际执行取消操作,并且返回值 第二次取消时,它只是忽略取消并保留新值 private ISession _session; private ISession GetSession() { return _session ?? (_session = _sessionFactory.OpenSessio
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;
}
但是,如果我更改Getstring id以包含刷新
public MappingCollection Get(string id)
{
var session = GetSession();
var mappingCollection = session.Get<MappingCollection>(id);
session.Refresh(mappingCollection);
return mappingCollection;
}
一切都正常-但使用NHibernate探查器,它会在第一次操作中调用select两次。。。我知道我可以添加一个bool来看看它是否运行过,但我希望有更好的方法
有人能帮忙吗?谢谢您是否在每次取消尝试时都会杀死您的web代理?这听起来像是每个请求问题一个会话
第二个版本应该运行两次。首先,你得到了物品。然后刷新项目。这将调用数据存储以检查更改。否,我将保持会话的活动状态以进行延迟加载。这是第一个运行两次的操作,因为它将其加载到缓存并刷新。