Linq to sql L2S、缓存和错误:查询结果不能枚举多次

Linq to sql L2S、缓存和错误:查询结果不能枚举多次,linq-to-sql,Linq To Sql,我有一个相当复杂的查询(包括一个表值函数以允许全文搜索),我正试图缓存它(HttpRuntime.cache)以进行分页。当我尝试使用缓存的L2S查询时,我得到了上面所述的错误:查询结果不能枚举多次 我尝试通过对缓存对象调用AsIQueryable()将查询分配给另一个IQueryable对象,但这没有帮助 有什么想法吗?您可以通过调用或扩展方法将查询结果存储在缓存中,而不是查询本身,这些方法将立即执行查询。然后,您可以根据需要从缓存中枚举结果。您可以通过调用或扩展方法将查询结果存储在缓存中,而

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

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


有什么想法吗?

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

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

使用

var retVal=(…).First()或ToList()

使用retVal.Name,retVal.姓氏

如果使用ToList();,您需要给出一个像retVal[1]这样的索引。Name

使用

var retVal=(…).First()或ToList()

使用retVal.Name,retVal.姓氏


如果使用ToList();,你需要给出一个像retVal[1]这样的索引。Name

谢谢Darin-看起来很明显,但是在其他L2S问题中,使用不熟悉的技术(asp.net mvc)我错过了它。谢谢Darin-看起来很明显,但是在其他L2S问题中,使用不熟悉的技术(asp.net mvc)我错过了它。