我有一个相当复杂的查询(包括一个允许全文搜索的表值函数),我正在尝试缓存(HttpRuntime.Cache)以进行分页。当我尝试使用缓存的L2S查询时,我得到上述错误:查询结果不能多次枚举。
我尝试通过在缓存对象上调用AsIQueryable()将我的查询分配给另一个IQueryable对象,但这没有用。
有什么想法吗?
答案 0 :(得分:3)
您可以通过调用将立即执行查询的.ToArray()
或.ToList()
扩展方法,将查询结果存储在缓存中而不是查询本身中。然后,您可以根据需要枚举缓存中的结果。
答案 1 :(得分:0)
使用
var retVal =(.....)。First()或ToList();
并使用retVal.Name,retVal.Surname ....
如果使用ToList();,则需要提供类似retVal [1] .Name
的索引