c# - NHibernate .Query 返回陈旧数据

标签 c# nhibernate linq-to-nhibernate

这是我的单元测试(很无意义但是证明了一点

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 成功

最佳答案

本文:

http://ayende.com/Blog/archive/2009/04/30/nhibernate-ndash-the-difference-between-get-load-and-querying-by.aspx

似乎暗示 Query 将转到数据库,绕过 session 的缓存,而 Get 将首先尝试 session 。

关于c# - NHibernate .Query 返回陈旧数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3995495/

相关文章:

c# - 是否有可能使用 Entity Framework 4,让主键在对象上的名称与在表中的名称不同?

c# - 在 ASP.NET 4 中更改图表控件的图表类型

c# - 如何在不循环的情况下更改 DataTable 列值?

c# - 流利的 nHibernate 加入

performance - NHibernate 条件查询与 LINQ to NHibernate

.net - NHibernate Linq 无法调用返回 IQueryable<T> 的常规方法

c# - C# xml序列化中XmlElement和XmlElementAttribute的区别

c# - 是否可以通过 composite-id 的多对一键进行导航?

.net - 使用 nHibernate 标准将字符串转换为 bool

nhibernate - QueryOver 语句以 DateTime 降序选择 N 行