2010-12-27 7 views

答えて

158

..

var result = EFContext.TestAddresses.Select(m => m.Name).Distinct(); 
36

これを試してみてください:

var results = (from ta in context.TestAddresses 
       select ta.Name).Distinct(); 

これはあなたにIEnumerable<string>を与えるだろう - あなたはList<string>を得るためにそれに.ToList()を呼び出すことができます。ラムダ式を使用して

+0

方法グループ化するよりも良いパフォーマンスを得ること。 Distinct:SQL Server実行時間: CPU時間= 0ミリ秒、経過時間= 50ミリ秒。グループ化:SQL Server実行時間: CPU時間= 0 ms、経過時間= 112 ms –

3

エンティティFrameworkの個別名を選択:

をあなたが複数のテーブルにを使用していて、したいビューを使用してしている場合と仮定その場合はまず変数&に値を格納しなければなりません。次にこの変数のようにその変数にDistinctを適用できます....

public List<Item_Img_Sal_VIEW> GetItemDescription(int ItemNo) 
     { 
      var Result= db.Item_Img_Sal_VIEW.Where(p => p.ItemID == ItemNo).ToList(); 
      return Result.Distinct().ToList(); 
     } 

それとも、を示した@alliswellという方法が完全に有効であり、別の方法があります。この簡単な例

Public Function GetUniqueLocation() As List(Of Integer) 
      Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList() 
End Function 
+0

あなたのコードは動作していません –

+0

ここにあなたのコードをコピー/書き込めますか? –

+0

こんにちは、テーブルでこれを行うと、エラーが出ます - > **文字列をIEnumreableに変換できません。リストを取得して、EF DB内のNVARCHARを含むテーブル列の個別の値を持つドロップダウンリストを作成することができます。 – aggie

14

を試すことができます! :)

var result = EFContext.TestAddresses 
    .GroupBy(ta => ta.Name) 
    .Select(ta => ta.Key); 

私はそれが誰かに役立つことを願っています。この例では

+0

私は複数の列を選択する必要があったので、これは私にとって非常に便利でした – mamashare

3
product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct(); 

重複の区分と私は、これはあなたが

0

エンティティFrameworkは明確な名前を選択して助けることを願っていない区分名:あなたは、各の特定の列のすべての最初のデータを必要している場合

を仮定しませんグループ;例えば

var data = objDb.TableName.GroupBy(dt => dt.ColumnName).Select(dt => new { dt.Key }).ToList(); 

      foreach (var item in data) 
      { 
       var data2= objDb.TableName.Where(dt=>dt.ColumnName==item.Key).Select(dt=>new {dt.SelectYourColumn}).Distinct().FirstOrDefault(); 

       //Eg. 
       { 
         ListBox1.Items.Add(data2.ColumnName);      
       } 

      } 
2

使用は(選択)。個別()

DBContext db = new DBContext(); 
var data= db.User_Food_UserIntakeFood .Where(f => f.PersonID == PersonID) .Select(c => new { c.DateOfIntake, c.TimeOfIntake }).Distinct(); 
関連する問題