"Ordenar por Col1, Col2" mediante el marco de la entidad


117

Necesito ordenar por 2 columnas usando el marco de la entidad.

¿Cómo se hace eso?

return _repository.GetSomething().OrderBy(x => x.Col1   .. Col2)?

es decir

SELECT * FROM Foo ORDER BY Col1, Col2

Respuestas:


244

Prueba OrderBy(x => x.Col1).ThenBy(x => x.Col2). De todos modos, es una característica de LINQ, no exclusiva de EF.


50

De otra manera:

qqq.OrderBy(x => new { x.Col1, x.Col2} )

¿Cómo se ordena descendiendo de esta manera?
user551113

10
qqq.OrderByDescending (x => new {x.Col1, x.Col2})
parfilko

7
Recibo un mensaje de error "Al menos un objeto debe implementar IComparable" cuando se usa con EntityFramework Core en dos campos de cadena.
sixtstorm1

26

Tratar:

OrderBy(x => x.Col1).ThenBy(x => x.Col2)

Para ordenar descendiendo intente esto:

OrderByDescending (x => x.Col1).ThenByDescending (x => x.Col2)

1

La siguiente clasificación ocurre en el nivel de base de datos. No en el resultado devuelto.

Tratar:

IQueryable<a>.OrderBy("col1 asc, col2 asc")

Ejemplo 1:

ctx.CateringOrders.OrderBy("Details.DeliveryDate asc, Details.DeliveryTime asc")

Ejemplo 2:

ctx.CateringOrders.OrderBy("{0} {1}, {2} {3}", 
    "Details.DeliveryDate", "asc",
    "Details.DeliveryTime", "asc" 
)

Donde IQueryable<a>es la consulta de entidad, "col1 asc"es la columna 1 y la dirección de clasificación "col2 asc"es la columna 2 y la dirección de clasificación


-6

Tenga en cuenta que esto no funcionará con Telerik's Grid ni con ningún otro componente DataSource de Telerik. Aunque utiliza un objeto IQueryable prefiltrado, la clasificación siempre se realiza automáticamente como último paso y anula de forma efectiva la configuración de clasificación.

Tienes que seguir: Especificar el orden predeterminado en la cuadrícula

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.