L2S,缓存和错误:查询结果不能多​​次枚举

时间:2010-07-11 09:13:02

标签: linq-to-sql

我有一个相当复杂的查询(包括一个允许全文搜索的表值函数),我正在尝试缓存(HttpRuntime.Cache)以进行分页。当我尝试使用缓存的L2S查询时,我得到上述错误:查询结果不能多​​次枚举。

我尝试通过在缓存对象上调用AsIQueryable()将我的查询分配给另一个IQueryable对象,但这没有用。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以通过调用将立即执行查询的.ToArray().ToList()扩展方法,将查询结果存储在缓存中而不是查询本身中。然后,您可以根据需要枚举缓存中的结果。

答案 1 :(得分:0)

使用

var retVal =(.....)。First()或ToList();

并使用retVal.Name,retVal.Surname ....

如果使用ToList();,则需要提供类似retVal [1] .Name

的索引