de-vraag
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
 Sasha
Sasha
Question

Viacnásobné "order by" v LINQ

Mám dve tabuľky, filmy a kategórie, a najprv dostanem zoradený zoznam podľa kategóriaID a potom podľa názvu.

Tabuľka filmov má tri stĺpce ID, Názov a CategoryID. Tabuľka kategórie má dva stĺpce ID a Názov.

Skúsil som niečo podobné, ale nefungovalo to.

var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })
1534 2008-11-18T13:34:11+00:00 3
Sudhir Dehade
Sudhir Dehade
Edited question 22 júl 2019 в 11:09
Programovanie
linq
sql-order-by
Popular videos
Multiple “order by” in LINQ
Multiple “order by” in LINQ
pred 3 rokmi
60 Seconds LINQ Multiple ORDER BY | The Developer Q&A Series
60 Seconds LINQ Multiple ORDER BY | The Developer Q&A Series
pred rokom
Part 19   Group by multiple keys in linq
Part 19 Group by multiple keys in linq
pred 7 rokmi
« Predchádzajúci
Ďalšie »
This question has 1 odpoveď in English, to read them log in to your account.
Solution / Answer
Nathan W
Nathan W
18 november 2008 в 1:41
2008-11-18T13:41:32+00:00
Viac na
Zdroj
Upraviť
#8640559

Toto by vám malo vyhovovať:

var movies = _db.Movies.OrderBy(c => c.Category).ThenBy(n => n.Name)
 syloc
syloc
Edited answer 25 január 2018 в 2:53
2749
0
Scott Stafford
Scott Stafford
30 september 2010 в 2:49
2010-09-30T14:49:34+00:00
Viac na
Zdroj
Upraviť
#8640560

Pomocou syntaxe LINQ, ktorá nie je lambda, to môžete urobiť:

var movies = from row in _db.Movies 
             orderby row.Category, row.Name
             select row;

[EDIT na adresu komentára] Ak chcete ovládať poradie triedenia, použite kľúčové slová vstupné (ktoré je predvolené, a preto nie je príliš užitočné) alebo zostupné, napríklad takto:

var movies = from row in _db.Movies 
             orderby row.Category descending, row.Name
             select row;
Scott Stafford
Scott Stafford
Edited answer 21 január 2011 в 8:57
585
0
 Alex
Alex
22 jún 2011 в 2:27
2011-06-22T14:27:59+00:00
Viac na
Zdroj
Upraviť
#8640561

Pridať "new":

var movies = _db.Movies.OrderBy( m => new { m.CategoryID, m.Name })

To funguje na mojom boxe. Vracia to niečo, čo sa dá použiť na triedenie. Vracia objekt s dvoma hodnotami.

Podobne, ale inak ako pri triedení podľa kombinovaného stĺpca, a to takto.

var movies = _db.Movies.OrderBy( m => (m.CategoryID.ToString() + m.Name))
Paul Zahra
Paul Zahra
Edited answer 15 december 2017 в 12:17
72
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
365
Registered pred dňom
2
True Image
Registered pred dňom
3
archana agarwal
Registered pred 3 dňami
4
Maxim Zhilyaev
Registered pred 6 dňami
5
adambotsfford adambotsfford
Registered pred týždňom
DE
EL
ES
FR
ID
IT
JA
KO
NL
PT
RU
SK
TR
ZH
© de-vraag 2022
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora