这是我的单元测试(很无意义但是证明了一点
Config entity = new Config("key", "value");
Session.SaveOrUpdate(entity);
Config config = Session.Query<Config>().SingleOrDefault(c => c.Key == "key");
Assert.IsNotNull(config);
它失败了......但我认为它不应该(注意,如果我刷新它,它不会失败,但这不是我想要的行为)
如果我用这个替换查询行
Config config = Session.Get<Config>("key");
...它过去了
它在任何时候都不会刷新(我什至将 FlushMode 设置为 never 只是为了确定)。为什么一个会成功,另一个不会?这似乎不对 - 我非常希望 linq 成功
最佳答案
本文:
似乎暗示 Query 将转到数据库,绕过 session 的缓存,而 Get 将首先尝试 session 。
关于c# - NHibernate .Query 返回陈旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995495/