Cal*_*ass 1 c# linq entity-framework
我有一个Linq查询,它返回基于where子句作为列表存储在表中的所有数据:
List<Catalogue> data = context.Catalogue.Where(x=>x.ManID == id).ToList();
Run Code Online (Sandbox Code Playgroud)
这将返回23个项目,但其中一些项目包含一些包含重复数据的列,我将其称为ColumnA,ColumnB和ColumnD.我试过了:
List<Catalogue> data = context.Catalogue.Where(x=>x.ManID == id)
.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)
但这只返回相同的23行.我想要的是,如果我可以指定我想要具有不同值的列,例如:
List<Catalogue> data = context.Catalogue.Where(x=>x.ManID == id)
.Distinct(x=> new { x.ColumnA, x.ColumnB, x.ColumnD }).ToList();
Run Code Online (Sandbox Code Playgroud)
这是可能的还是我应该寻找一种新的方法呢?
尝试结合GroupBy并First:
List<Catalogue> data = context.Catalogue
.Where(x => x.ManID == id)
.GroupBy(x => new { x.ColumnA, x.ColumnB, x.ColumnD })
.Select(g => g.First())
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
566 次 |
| 最近记录: |