我们有一个使用NHibernateDataContext(RecipeDataContext : NHibernateDataContext
)
它公开食谱如下
public IQueryable<Recipe> Recipes
{
get
{
var x = new NhQueryable<Recipe>(Session.GetSessionImplementation());
return x;
}
}
我尝试将cachemode设置为忽略
var newSession = Session.GetSessionImplementation();
newSession.CacheMode = CacheMode.Ignore;
var x = new NhQueryable<Recipe>(newSession);
return x;
我们看到查询使用SQL Server Profiler访问数据库。该查询返回正确的值。但是,“x
”在修改之前包含旧值。
我们如何让它忽略缓存,并查询数据库?
答案 0 :(得分:0)
会话的第一级缓存中的对象不会自动从数据库刷新。这通常不是问题,因为来自客户端的每个单独请求通常都会启动一个新会话。