根据列值-linq删除Duplicate
我在员工和团队之间有很多很多关系。 遵循linq声明
int[] GroupIDs = {6,7}; var result = from g in umGroups join empGroup in umEmployeeGroups on g.GroupID equals empGroup.GroupID where GroupIDs.Contains(g.GroupID) select new { GrpId = g.GroupID,EmployeeID = empGroup.EmployeeID };
返回groupid和employeeid。 结果是
GrpId | EmployeeID 6 | 18 6 | 20 7 | 19 7 | 20
我需要删除employeeid重复的行,例如employeeid = 20的任何一行
谢谢
好的,如果您不关心删除哪个员工,您可以尝试以下方法:
var result = query.GroupBy(x => x.EmployeeId) .Select(group => group.First());
你还没有指定它是在LINQ to SQL,LINQ to Objects还是其他东西……我不知道这将是什么SQL翻译。 如果您正在处理相对少量的数据,您可以始终强制最后一位处于进程中:
var result = query.AsEnumerable() .GroupBy(x => x.EmployeeId) .Select(group => group.First());
那时你可以使用MoreLINQ ,它有一个方便的DistinctBy
方法:
var result = query.AsEnumerable() .DistinctBy(x => x.EmployeeId);
- 为什么Html.Checkbox(“Visible”)在ASP.NET MVC 2中返回“true,false”?
- 派生的RequiredAttribute不起作用
- 如何从asp.net mvc 2应用程序中的自定义ValidationAttribute内部访问其他属性值?
- 在MVC中的Entity框架中动态添加表
- 在ASP.NET中使用线程有任何非明显的危险吗?
- 在开发多租户asp.net MVC应用程序时要记住什么?
- 从HTML帮助程序中提取显示名称和描述属性
- 在entity framework中编辑对象并将其保存到ASP.NET MVC 2.0中的数据库中
- 如何从Request.Form获取所有元素值,而无需使用.GetValues(“ElementIdName”)确切指定哪个元素值