我正在使用以下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()使用缓存?