2017-09-19 1 views
1

EFテーブルからIDと説明を選択しようとしていますが、LINQを使用して、各グループの最初のものを選択し、特定の列を持つ新しいobjを作成します。

var results = _db.Certifications 
.GroupBy(c => c.Description) 
.SelectFirst(c => new SearchCriterion {Id = c.CertificationId, Name = c.Description}); 

私はSelectFirstありません実現が、私はこれは私が何をしようとしている記述するための助けになると思うが(私はそれが特定の列に個別に適用しようとする方法としてGroupBy/SelectFirstを使用することが提案ました)

FirstOrDefault()( "引数は用途から推論できません")、私のプロパティ(CertificationId/Description)が認識されません。

答えて

2

ほとんどの場合、グループ化されていないプロパティで集約を使用する必要があります。以下のコードは、Maxを使用して、それぞれdescriptionに基づいて最大のCertificationIdを返します。これをMinに変更すると、最小値はCertificationIdになります。

var results = _db.Certifications 
     .GroupBy(c => c.Description) 
     .Select(c => new SearchCriterion {Id = c.Max(y => y.CertificationId), Name = c.Key}); 
+1

Ah!それで、どちらのIDを使うかはわかっています。ありがとう! – birdus

関連する問題