【发布时间】:2015-02-11 01:39:36
【问题描述】:
我正在使用 C# / Entity Framework 并尝试将 Distinct() 与一个属性一起使用,但我找不到正确的语法。
我有什么:
context
.Orders
.Select(o => o.User)
.Distinct();
最后的查询是对整个 User 对象做一个 distinct:
SELECT
[Distinct1].[ID] AS [ID],
[Distinct1].[Name] AS [Name],
[Distinct1].[Email] AS [Email],
(...)
我需要的是仅使用一个属性来区分,例如名称。最终查询类似于:
SELECT
[ID],
[Distinct1].[Name] AS [Name],
[Email],
(...)
如果我在Distinct() 之前使用ToList(),我可以在Distinct() 中使用EqualityComparer,但我试图避免它,因为我遇到了性能问题,因为它正在加载高负载信息进入内存而不是在数据库中过滤。
【问题讨论】:
-
检查 MoreLinq code.google.com/p/morelinq , ( DistinctBy : code.google.com/p/morelinq/wiki/OperatorsOverview )
标签: c# .net entity-framework