我一直在思考如何最好地缓存 IQueryables。我正在使用存储库模式将数据提取到诸如此类的类中:
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public IQueryable<Category> { get; set; } // For simplicity. It is actually a LazyList<Category> containing an IQueryable
}
现在我将如何最好地缓存这个对象?我想保持可查询的延迟执行,因为实际上除了 Category 之外还有更多可以链接到该项目的东西,我最好不要将它们获取到存储在对象上,因为对象可能会变得太大,或者它们可能需要单独缓存。
我在想编译查询可以以某种方式使这成为可能,我只是不太明白如何。有没有人找到任何好的解决方案?这似乎是一种非常常见的使用模式。