Entity Framework выбрать другое имя - PullRequest
105 голосов
/ 27 декабря 2010

Как я могу сделать этот SQL запрос с Entity Framework ?

SELECT DISTINCT NAME FROM TestAddresses

Ответы [ 7 ]

218 голосов
/ 27 декабря 2010

Использование лямбда-выражения ..

 var result = EFContext.TestAddresses.Select(m => m.Name).Distinct();
44 голосов
/ 27 декабря 2010

Попробуйте:

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

Это даст вам IEnumerable<string> - вы можете позвонить .ToList(), чтобы получить List<string>.

19 голосов
/ 01 марта 2014

Способ, который показал @ alliswell , полностью действителен, и есть другой способ!:)

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

Надеюсь, это кому-нибудь пригодится.

9 голосов
/ 10 декабря 2015
DBContext.TestAddresses.Select(m => m.NAME).Distinct();

если у вас есть несколько столбцов, сделайте так:

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

В этом примере нет дубликата CategoryId и нет CategoryName. Надеюсь, это поможет вам

4 голосов
/ 30 ноября 2012

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

Или вы можете попробовать этот простой пример

Public Function GetUniqueLocation() As List(Of Integer)
          Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList()
End Function
3 голосов
/ 05 октября 2017

используйте Select (). Distinct ()

например

DBContext db = new DBContext();
var data= db.User_Food_UserIntakeFood .Select( ).Distinct();
1 голос
/ 21 октября 2016

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

            }
...