Nhibernate没有使用.IsIn()函数正确缓存子集查询

时间:2014-10-21 16:00:29

标签: caching nhibernate subset

我正在使用以下NHibernate查询,而且我没有得到我期望的缓存。

这个代码运行两次。 salesIds第一次包含5项{1,2,3,4,5}。 第二次,salesIds包含1个项{1},它是第一个项的子集。

Session.QueryOver<Product>()
    .WhereRestrictionOn(x => x.Sales.Id)
    .IsIn(salesIds.ToArray())
    .Cacheable()
    .List<Product>()

我期望NHibernate缓存第一个查询的结果,这样第二次运行就不会向数据库发送查询。但是,似乎两个运行都发送了一个查询。有没有办法让第二个QueryOver()使用缓存?

0 个答案:

没有答案