我知道标题有点令人困惑,但问题非常简单。我正在使用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
唯一的所有记录。
答案 0 :(得分:1)
您希望按匿名类型进行分组:
.GroupBy(x => new { x.Sole.Code, x.Sole.CountryID })
BTW:对FirstOrDefault
返回的群组使用GroupBy
没有意义。由GroupBy
返回的每个组都包含至少一个元素,因此保证使用First
始终成功。