Wielokrotne sortowanie LINQ - różnice

Wielokrotne sortowanie LINQ - różnice
lukaszek016
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 249
0

Witam.

Mam pytanie co do sortowania w LINQ. Czym różnią się takie zapisy?

Kopiuj
var containers = db.WarehouseContainers.OrderBy(c => c.WarehouseContainerType.Name)
                .ThenBy(c => c.Symbol).ToList();

oraz

Kopiuj
var containers = db.WarehouseContainers.OrderBy(c => new { c.WarehouseContainerType.Name, c.Symbol }).ToList();

Z tego, jaki efekt widzę to sortuje w ten sam sposób, najpierw po nazwie typu, a później po symbolu. Jest jakaś różnica?

XardasLord
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 271
0

Tutaj masz wyjaśnienie

If you call OrderBy multiple times, it will effectively reorder the sequence completely three times... so the final call will effectively be the dominant one.

PS.
Zapytania LINQ zwracają IQueryable<T>, możesz przypisać sobie takie zapytanie do zmiennej i podejrzeć jakie sql query LINQ wygenerowało.

lukaszek016
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 249
0

Ok, podejrzałem SQLa i zapytania są identyczne.

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
0

w tym wypadku beda identyczne, bo uzywasz jeden raz OrderBy

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.