2010-07-11 31 views
0

我有一个相当复杂的查询(包括一个表值函数以允许全文搜索),我试图缓存(HttpRuntime.Cache)for分页目的。当我尝试使用缓存的L2S查询时,出现上述错误:查询结果无法枚举多次。L2S,缓存和错误:查询结果不能枚举多次

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

任何想法?

回答

3

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

+0

感谢达林指标 - 看起来漂亮很明显,但在其他L2S问题中,并且使用不熟悉的技术开始(asp.net mvc),我错过了它。 – jlnorsworthy 2010-07-11 18:32:47

0

使用

VAR retVal的=(.....)第一()或ToList();

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

如果你使用ToList();你需要给像retVal的[1],请将.Name

相关问题