如何让我的 Linq to SQL 查询逻辑在服务器上执行?
我创建了一个 Linq 查询并将其作为 IEnumerable 返回。查询的后续操作(例如 .Count() 或 .Take(5))在 CLR 中的客户端上计算,而不是在服务器上计算。
转换为 IEnumerable 将导致执行查询 - 因此数据现在位于客户端。
如果要在服务器端执行分页,则应该在 IQueryable 仍处于后期执行时执行这些操作。
IEnumerable 是问题所在。将 Linq.DataQuery 作为 IQueryable 返回允许 Linq to SQL 向查询添加其他操作。当我描述问题时就明白了这一点。