【发布时间】:2010-08-10 18:53:38
【问题描述】:
大多数人会建议将缓存作为列表。我知道这是一个解决方案,可能是我选择的解决方案。但是,如果希望能够处理具有完整 IQueryable (IEnumerable?) 功能的缓存 linq-to-sql 怎么办?
如果确实尝试缓存原始结果,则会出现错误“查询结果无法枚举多次”。
所以,为了明确我的问题是:
- Lists、IQueryable 和 IEnumerable 的哈希码是否唯一?
- 如果我想安全地缓存 linq-to-sql 结果并在之后提供最大功能,我该怎么做?
【问题讨论】:
-
在保持完整的 IQueryable 功能的同时缓存本地数据是利益冲突。 Linq-to-SQL 中 IQueryable 的目的是将 LINQ 表达式转换为 SQL。
-
@Kbrimington 也许我需要一个 Ienumerable 吗?我想对缓存结果使用过滤功能。我不需要知道我使用的是缓存数据还是非缓存数据也是理想的。我承认我没有查看接口来查看哪些接口是必需的,但我相当确定列表更有限。也许扩展方法提供了这一点。
标签: .net linq linq-to-sql caching