【发布时间】:2017-09-05 09:50:00
【问题描述】:
阅读this 问题(和答案)我发现至少有两种方法可以从IQueryabe 中获取不同的项目,同时仍然可以选择过滤的内容。这两种方法是:
table.GroupBy(x => x.field).Select(x => x.FirstOrDefault());
或使用 MoreLinqs DistinctBy
table.DistinctBy(x => x.field);
但是该线程并没有解释性能差异以及我应该何时使用一个而不是另一个。那么我什么时候要使用其中一个呢?
【问题讨论】:
-
race your horses 请注意,MoreLinq 的
DistinctBy在内存中工作,它不会被转换为 sql,也不会由 db 执行。GroupyBy可能由您的查询提供程序实现并在数据库上执行。