Mos*_*afa 12 c# asp.net entity-framework distinct complextype
我有一个PC Enity有一些属性,我想基于属性返回一个不同的对象(PC或复杂类型或其他)的列表,以便将它绑定到服务器控件,如DropDownList.因为我的方法位于BLL我不能返回匿名类型,所以我创建了一个具有两个peroperties的Branch ComplexType.
我写的是这样但它有重复的记录:
List<Branch> result = ( from p in _context.PCs
where p.UserId== userId
select new Branch()
{
BranchId= p.BranchId,
BranchName=p.BranchName
}).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
编辑: 谢谢大家,这有效:
List<PC> result = _context.PCs
.GroupBy(p=>p.BranchName , p.BranchId})
.select(g=>g.First())
.ToList();
Run Code Online (Sandbox Code Playgroud)
Hab*_*bib 11
这将为select语句中的所有列返回不同的行.如果您想要特定列的不同行,请指定该特定列
List<Branch> result = ( from p in _context.PCs
where p.UserId== userId
select new Branch()
{
BranchId= p.BranchId,
}).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
如果要基于多个列获取不同的值,则必须创建一个组,然后从该组中选择第一个值.在这种情况下,您将不会使用Distinct
List<Branch> distinctResult = _context.PCs
.GroupBy(p => new Branch {p.BranchId, p.BranchName} )
.Select(g => g.First())
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24933 次 |
| 最近记录: |