我在使用 Linq 实现一些分页时遇到了一些麻烦,我已经阅读了各种问题(例如this和this),但我仍然遇到错误;
System.InvalidOperationException:不能多次枚举查询结果。
我的(稍微混淆的)代码是;
public List<Thing> GetThings(ObjectParameter[] params, int count, int pageIndex)
{
var things = from t in Context.ExecuteFunction<Something>("function", params)
select new Thing
{
ID = t.ID
});
var pagedThings = things;
if (pageIndex == 0)
pagedThings = things.Take(count);
else if (pageIndex > 0)
pagedThings = things.Skip(count * pageIndex).Take(count);
var countOfThings = things.Count();
return pagedThings.ToList();
}
一旦.ToList()
调用 final ,就会抛出错误,但我不明白为什么 - 调用things.Count()
和pagedThings.ToList()
枚举相同的东西吗?
编辑:如果这有什么不同,我正在使用实体框架