Verwenden Sie die folgende Zeile in Ihrem DataContext, um die SQL-Aktivität auf dem DataContext in der Konsole zu protokollieren - dann können Sie genau sehen, was Ihre Linq-Anweisungen von der Datenbank anfordern:
_db.Log = Console.Out
Die folgenden LINQ-Anweisungen:
var movies = from row in _db.Movies
orderby row.CategoryID, row.Name
select row;
UND
var movies = _db.Movies.OrderBy(m => m.CategoryID).ThenBy(m => m.Name);
die folgende SQL-Datei erzeugen:
SELECT [t0].ID, [t0].[Name], [t0].CategoryID
FROM [dbo].[Movies] as [t0]
ORDER BY [t0].CategoryID, [t0].[Name]
Die Wiederholung eines OrderBy in Linq hingegen scheint die resultierende SQL-Ausgabe umzukehren:
var movies = from row in _db.Movies
orderby row.CategoryID
orderby row.Name
select row;
UND
var movies = _db.Movies.OrderBy(m => m.CategoryID).OrderBy(m => m.Name);
folgendes SQL erzeugen (Name und CategoryId sind vertauscht):
SELECT [t0].ID, [t0].[Name], [t0].CategoryID
FROM [dbo].[Movies] as [t0]
ORDER BY [t0].[Name], [t0].CategoryID