c# – 实体框架返回不同的记录问题

前端之家收集整理的这篇文章主要介绍了c# – 实体框架返回不同的记录问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个具有一些属性的PC Enity,我想返回一个基于属性的不同对象(PC或复杂类型或任何)的列表,以便将其绑定到像DropDownList这样的服务器控件.并且因为我的方法位于BLL我不能返回匿名类型,所以我创建了一个分支复杂类型,它有两个操作.

我这样写,但有重复的记录:

List<Branch> result = ( from p in _context.PCs
                        where p.UserId== userId
                        select new Branch()
                                   {
                                      BranchId= p.BranchId,BranchName=p.BranchName
                                   }).Distinct().ToList();

编辑:
谢谢大家,这个工作:

List<PC> result = _context.PCs
                  .GroupBy(p=>p.BranchName,p.BranchId})
                  .select(g=>g.First())
                  .ToList();

解决方法

这将返回不同行的SELECT语句中的所有列.如果你想为一个特定的列不同的行只是指定特定列
List<Branch> result = ( from p in _context.PCs
                        where p.UserId== userId
                        select new Branch()
                                   {
                                      BranchId= p.BranchId,}).Distinct().ToList();

如果你想获得基于多列不同的值,那么你必须创建一个组,然后选择从该组中第一个值.在这种情况下,你不会使用DISTINCT,例如

List<Branch> distinctResult = _context.PCs
  .GroupBy(p => new Branch {p.BranchId,p.BranchName} )
  .Select(g => g.First())
  .ToList();
原文链接:https://www.f2er.com/csharp/95342.html

猜你在找的C#相关文章