从linq到entity的列表中选择不同的值

时间:2014-03-20 09:52:25

标签: linq c#-4.0 entity-framework-4

有一个表,它是由实体框架生成的poco实体。

class Log
{
    int DoneByEmpId;
    string DoneByEmpName
}

我正从数据库中检索一个列表。我希望基于donebyempid的不同值和那些值empname的顺序。

我已经尝试了很多方法但是它无法正常工作

var lstLogUsers = (context.Logs.GroupBy(logList => logList.DoneByEmpId).Select(item => item.First())).ToList(); // it gives error 

这个获得所有用户。

 var lstLogUsers = context.Logs.ToList().OrderBy(logList => logList.DoneByEmpName).Distinct();

任何人都可以建议如何实现这一点。

2 个答案:

答案 0 :(得分:0)

我可以指出您的数据模型可能存在问题吗?我想你应该在这里DoneByEmpId,以及一个EmployeeEmpId的单独的表Name

我认为这就是你需要使用Distinct / GroupBy的原因(正如你所发现的那样,这种方案并不适用)。

答案 1 :(得分:0)

我不在编译器附近,所以我无法测试它,但是......

使用Distinct()的其他版本,即带有IEqualityComparer<TSource>参数的版本,然后使用OrderBy()

例如,请参阅here