web-dev-qa-db-ja.com

Entity Frameworkが個別名を選択する

Entity FrameworkでこのSQLクエリを実行するにはどうすればよいですか?

SELECT DISTINCT NAME FROM TestAddresses
112
astronought

ラムダ式を使用します。

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

これを試して:

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

これにより、IEnumerable<string>が得られます。List<string>を取得するには、.ToList()を呼び出します。

48
marc_s

@ alliswellが示した方法は完全に有効であり、別の方法もあります! :)

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

それが誰かに役立つことを願っています。

20
Kim Tranjan
DBContext.TestAddresses.Select(m => m.NAME).Distinct();

複数の列がある場合、次のようにします。

DBContext.TestAddresses.Select(m => new {m.NAME, m.ID}).Distinct();

この例では、重複するCategoryIdとCategoryNameはありません

10
Hafiz Asad

Entity-Framework Select Distinct Name:

複数のテーブルを使用しているビューを使用している場合で、その場合に最初に個別に適用したい場合変数に値を保存するには、この変数のようにその変数に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();
        }

または、この簡単な例を試すことができます

Public Function GetUniqueLocation() As List(Of Integer)
          Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList()
End Function
4
Ayaat Shifa

select()。Distinct()を使用します

例えば

DBContext db = new DBContext();
var data= db.User_Food_UserIntakeFood .Select( ).Distinct();
3

エンティティフレームワークの個別名の選択:

各グループの特定の列の最初のすべてのデータが必要な場合を想定してください。

 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);                    
                }

            }
1