c# – 实体框架返回不同的记录问题
发布时间:2020-12-15 06:32:24 所属栏目:百科 来源:网络整理
导读:我有一个具有一些属性的PC Enity,我想返回一个基于属性的不同对象(PC或复杂类型或任何)的列表,以便将其绑定到像DropDownList这样的服务器控件.并且因为我的方法位于BLL我不能返回匿名类型,所以我创建了一个分支复杂类型,它有两个操作. 我这样写,但有重复的记
我有一个具有一些属性的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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |