2017-06-14 18 views
1

Workpacksテーブルから別の演算子の新しいリストを返すLINQクエリを作成するにはどうすればよいですか(DBは正規化されていません)。私はこのクエリを得たが、SQLサーバーが重複した値LINQ - 別個のアイテムのリストを作成する方法

Instance.CriteriaOperatorList = 
    (from v in context.Workpacks 
    select new FilterCriteriaItem() 
    { 
     GUID = Guid.NewGuid(), 
     Name = v.Operator, 
    }).ToList(); 
+0

これは、どのコレクションを「区別するか」、「ワークパック」に依存しますか?またはあなたの 'select'の出力? – maccettura

+0

このLINQ to Entitiesですか? – cost

+1

どの部分が異なると思われますか?あなたが戻ってくるオブジェクトはGUIDが異なるので一意になります... –

答えて

2

Workpackから別のOperatorを取得したい場合は、取得してください。これを行う最も簡単な方法は、SQL LINQ構文を使用しないことです。

Instance.CriteriaOperatorList = context.Workpacks 
             // Only request the Operator names 
             .Select(w => w.Operator) 
             // But just request the distinct names 
             .Distinct() 
             // Then select into your DTO. 
             .Select(o => new FilterCriteriaItem 
             { 
              GUID = Guid.NewGuid(), 
              Name = o // o is the Operator from Workpack 
             }) 
             .ToList(); 
0

を返さないように、私はちょうど(.Distinctを使用し、適切にDISTINCTを使用する方法がわからない).TOリストの前に()。

+0

OPは新しい 'FilterCriteriaItem'を作成する前に別個の 'Operator'を望んでいます –

関連する問題