Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从linq to实体中的列表中选择不同的值_Linq_C# 4.0_Entity Framework 4 - Fatal编程技术网

从linq to实体中的列表中选择不同的值

从linq to实体中的列表中选择不同的值,linq,c#-4.0,entity-framework-4,Linq,C# 4.0,Entity Framework 4,有一个表,它是实体框架生成的poco实体 class Log { int DoneByEmpId; string DoneByEmpName } 我正在从数据库中检索列表。我需要基于donebyempid的不同值,并按这些值的名称排序 我尝试了很多方法,但都不管用 var lstLogUsers = (context.Logs.GroupBy(logList => logList.DoneByEmpId).Select(item => item.First())).

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

class Log
{
    int DoneByEmpId;
    string DoneByEmpName
}
我正在从数据库中检索列表。我需要基于donebyempid的不同值,并按这些值的名称排序

我尝试了很多方法,但都不管用

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();

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

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


我想这就是为什么您需要使用
Distinct
/
GroupBy
(正如您所发现的,这在这种情况下并不起作用)。

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

使用另一个版本的
Distinct()
,该版本采用
IEqualityComparer
参数,然后使用
OrderBy()


例如,请参阅。

我实际上没有查看日志中的字段。克里斯·巴拉德可能是对的。它看起来确实很奇怪。它还有很多其他字段,empid和其他详细信息来自其他数据库……还有其他字段我在这里没有提到,因此数据模型是正确的,您能建议一种使用linqare实现这一点的方法吗?您确定吗?每个
DoneByEmpId
是否可以有不同的
DoneByEmpName
值?