ADO.NET EF -使用LINQ 2 Entity和GroupBy来区分两列
本文关键字:两列 GroupBy EF NET 使用 LINQ Entity ADO | 更新日期: 2023-09-27 18:05:59
我知道这个标题有点令人困惑,但问题非常直接。我使用Entity Framework
和Code First
方法。我有两个关系为1和N的实体。记录的唯一性来源于Code
+ CountryID
两列的组合。首先,我认为Code
本身将是唯一的文件,所以我对获取不同记录的查询看起来像这样:
IList<SoleColor> soles = SoleColorService.All()
.GroupBy(x => x.Sole.Code)
.Select(g => g.FirstOrDefault())
.ToList();
但现在发生的是,这样做,我失去了那些记录,其中Code
(或确切地说- Sole.Code
)是相同的,但CountryID
是不同的。我需要的是改变我的查询,所以它返回所有记录,其中Code
+ CountryID
是唯一的。
您希望按匿名类型分组:
.GroupBy(x => new { x.Sole.Code, x.Sole.CountryID })
BTW:在GroupBy
返回的组上使用FirstOrDefault
是没有意义的。GroupBy
返回的每个组至少包含一个元素,因此使用First
保证总是成功的。