我正在为 Linq2Sql 中的数据表准备数据
此代码突出显示为“IEnumerable 的可能多重枚举”(在 Resharper 中)
// filtered is an IEnumerable or an IQueryable
var total = filtered.Count();
var displayed = filtered
.Skip(param.iDisplayStart)
.Take(param.iDisplayLength).ToList();
我 100% 确定 Resharper 是对的。
我如何重写它以避免警告
为了澄清,我知道我可以在过滤的末尾放置一个 ToList,只对数据库进行一次查询,例如。
var filteredAndRun = filtered.ToList();
var total = filteredAndRun.Count();
var displayed = filteredAndRun
.Skip(param.iDisplayStart)
.Take(param.iDisplayLength).ToList();
但这会带回比我想通过网络传输的数据多得多的数据。
我期待着我不能吃蛋糕也不能吃。:(