NHibernate返回一个缓存的值,但它不应该

时间:2013-12-19 18:17:19

标签: c# nhibernate caching wcf-data-services

我们有一个使用NHibernateDataContext(RecipeDataContext : NHibernateDataContext

的WCF数据服务

它公开食谱如下

    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”在修改之前包含旧值。

我们如何让它忽略缓存,并查询数据库?

1 个答案:

答案 0 :(得分:0)

会话的第一级缓存中的对象不会自动从数据库刷新。这通常不是问题,因为来自客户端的每个单独请求通常都会启动一个新会话。