2009-04-01 10 views

Odpowiedz

31

Cóż, można zrobić projekcję pierwszy:

var qry = db.Customers.Select(cust => new {cust.ID, cust.Name, cust.Region}) 
        .Distinct(); 

albo w składni zapytania:

var qry = (from cust in db.Customers 
      select new {cust.ID, cust.Name, cust.Region}).Distinct(); 

to zrobić?

5

Przez „odrębny od wielu kolumnach” co naprawdę oznacza to grupa o.

Gdy poprosisz o wyróżnienie, oznacza to, że otrzymujesz WSZYSTKIE odrębne wiersze lub grupę, używając wszystkich kolumn w tabeli.

Jeśli chcesz otrzymywać tylko wyraźne grupy dla podzbioru kolumn, użyj w klauzuli grupy, określając kolumny do grupowania według. Następnie wybierz grupy, ponieważ potrzebujesz tylko jednego zestawu kluczy dla każdej grupy.

1

var qry = (z UST w db.Customers wybrać nową {cust.ID, cust.Name, cust.Region}). GroupBy (X => nowy {X. Name, x.Region}). Select (z => z.OrderBy (i => i.cust) .FirstOrDefault()). ToList();

2

Inną łatwą opcją jest utworzenie pojedynczego wyraźnego ciągu.

var result = collection.DistinctBy(c => c.Field1 + "." + c.Field2 + "." + c.Field3);