在ORMs中缓存查询结果-满足任意子集查询

在ORMs中缓存查询结果-满足任意子集查询,orm,caching,logic,Orm,Caching,Logic,我知道N/Hibernate使用缓存来满足它以前见过的查询,这称为查询缓存。然而,它能满足该查询的子集吗?我想不会,因为我猜,弄明白这一点的一般问题是无法确定的 但是,有什么策略可以做到这一点吗?假设我有一个对所有花费不到20美元的小部件的查询。稍后,我有一个查询,用于所有10美元以下的小部件。显然,第二个查询结果将在假设没有逐出等情况下被缓存,因此我只想根据缓存的查询谓词重新计算谓词,以确定它是否包含它。是否有一些实用的策略可以做到这一点?例如,使用LINQ对缓存的查询结果使用内存内过滤是否很

我知道N/Hibernate使用缓存来满足它以前见过的查询,这称为查询缓存。然而,它能满足该查询的子集吗?我想不会,因为我猜,弄明白这一点的一般问题是无法确定的


但是,有什么策略可以做到这一点吗?假设我有一个对所有花费不到20美元的小部件的查询。稍后,我有一个查询,用于所有10美元以下的小部件。显然,第二个查询结果将在假设没有逐出等情况下被缓存,因此我只想根据缓存的查询谓词重新计算谓词,以确定它是否包含它。是否有一些实用的策略可以做到这一点?

例如,使用LINQ对缓存的查询结果使用内存内过滤是否很常见。

但是您如何知道查询与内存内结果匹配,也就是说,前一个查询的结果覆盖了有问题的查询?如果像Price<20和Color='Red'这样的查询被缓存,那么仅仅通过过滤Price<20或Color='Red'是不能满足的。通常,您会缓存整个集合,在其中它根据大小生成sesne。您称之为大的是什么?我希望大多数参考数据都能存储在内存中