我试图从EF表中选择Id和Description,但在描述中使用不同的。
我意识到那里没有SelectFirst
,但我认为这有助于描述我尝试做的事情(我看到它建议使用GroupBy/SelectFirst
作为尝试的方式将Distinct应用于特定列):
var results = _db.Certifications
.GroupBy(c => c.Description)
.SelectFirst(c => new SearchCriterion {Id = c.CertificationId, Name = c.Description});
FirstOrDefault()
最终不起作用(&#34;参数无法从使用中推断出来&#34;)并且我的属性(CertificationId / Description)未被识别。< / p>
答案 0 :(得分:2)
几乎,您必须使用非按组分类的聚合。以下代码使用Max
,将根据每个不同的CertificationId
返回最大的description
。您可以将其更改为Min
以获得最小CertificationId
。
var results = _db.Certifications
.GroupBy(c => c.Description)
.Select(c => new SearchCriterion {Id = c.Max(y => y.CertificationId), Name = c.Key});