2010-12-27 16 views

Odpowiedz

158

Używanie wyrażenia lambda ..

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

Spróbuj tego:

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

To daje IEnumerable<string> - można nazwać .ToList() na nią dostać List<string>.

+0

w ten sposób uzyskać lepszą wydajność niż grupowania. Wyraźny: czas wykonania serwera SQL: Czas procesora = 0 ms, czas, który upłynął = 50 ms. Grupowanie: czas wykonania serwera SQL: Czas procesora = 0 ms, czas, który upłynął = 112 ms. –

3

Entity Framework-SELECT DISTINCT Nazwa:

Załóżmy, że jeśli jesteś Korzystanie z widoków, w których używasz wielu tabel i chcesz Zastosuj różne w tym przypadku najpierw musisz przechowywać wartość w zmiennej & następnie można zastosować Distinct na tej zmiennej jak ta ....

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

Albo można spróbować tego prostego przykładu

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

Nie działa twój kod @ayaat –

+0

Czy możesz skopiować/napisać tutaj kod? –

+0

Witam, kiedy robię to na stole, pojawia się błąd -> ** nie można przekonwertować ciągu znaków na IEnumreable .. ** czy możesz pokazać mi jak uzyskaj listę, dzięki czemu mogę wypełnić listę rozwijaną, z różnymi wartościami z kolumny tabeli zawierającej NVARCHAR w EF DB. – aggie

14

Sposób, że @alliswell pokazał jest całkowicie poprawny, a nie inny sposób! :)

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

Mam nadzieję, że przyda się komuś.

+0

było to dla mnie bardzo przydatne, ponieważ musiałem wybrać wiele kolumn – mamashare

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

W tym przykładzie nie duplikat CategoryId i nie CategoryName Mam nadzieję, że to pomoże Ci

0

Entity-framework select distinct Nazwa:

Załóżmy, jeśli chcesz co pierwsze dane o szczególnym kolumnie każda Grupa ;

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

Zastosowanie Wybierz(). Wyraźny()

np

DBContext db = new DBContext(); 
var data= db.User_Food_UserIntakeFood .Where(f => f.PersonID == PersonID) .Select(c => new { c.DateOfIntake, c.TimeOfIntake }).Distinct();