use a seguinte linha em seu DataContext para registrar a atividade SQL no DataContext no console - para poder ver exatamente o que suas instruções linq estão solicitando no banco de dados:
_db.Log = Console.Out
As seguintes instruções LINQ:
var movies = from row in _db.Movies
orderby row.CategoryID, row.Name
select row;
E
var movies = _db.Movies.OrderBy(m => m.CategoryID).ThenBy(m => m.Name);
produza o seguinte SQL:
SELECT [t0].ID, [t0].[Name], [t0].CategoryID
FROM [dbo].[Movies] as [t0]
ORDER BY [t0].CategoryID, [t0].[Name]
Considerando que, repetir um OrderBy no Linq, parece inverter a saída SQL resultante:
var movies = from row in _db.Movies
orderby row.CategoryID
orderby row.Name
select row;
E
var movies = _db.Movies.OrderBy(m => m.CategoryID).OrderBy(m => m.Name);
produza o seguinte SQL (Name e CategoryId são alternados):
SELECT [t0].ID, [t0].[Name], [t0].CategoryID
FROM [dbo].[Movies] as [t0]
ORDER BY [t0].[Name], [t0].CategoryID