Tengo dos tablas, películas
y categorías
, y obtengo una lista ordenada por categoryID primero y luego por Nombre.
La tabla de películas tiene tres columnas ID, Nombre y CategoryID. La tabla de categorías tiene dos columnas ID y Nombre.
He intentado algo como lo siguiente, pero no ha funcionado.
var movies = _db.Movies.OrderBy( m => { m.CategoryID, m.Name })
Utilizando LINQ sin lambda, la sintaxis de consulta, se puede hacer esto:
var movies = from row in _db.Movies
orderby row.Category, row.Name
select row;
[Para controlar el orden de clasificación, utilice las palabras clave ascending
(que es el valor por defecto y por lo tanto no es particularmente útil) o descending
, así:
var movies = from row in _db.Movies
orderby row.Category descending, row.Name
select row;
Añade "nuevo":
var movies = _db.Movies.OrderBy( m => new { m.CategoryID, m.Name })
Eso funciona en mi caja. Devuelve algo que se puede utilizar para ordenar. Devuelve un objeto con dos valores.
Es similar, pero diferente, a la ordenación por una columna combinada, de la siguiente manera.
var movies = _db.Movies.OrderBy( m => (m.CategoryID.ToString() + m.Name))