Saltar al contenido

¿Puede usar una instrucción CASE con OrderBy en una consulta de LINQ to Entities?

Solución:

var p = ctx.People.OrderBy(p => (p.IsQualityNetwork == 1 || p.IsEmployee == 1) ? 0 : 1)
                  .ThenBy(p => p.Name);

Aquí hay una traducción de su SQL a LINQ.

var query = from p in ctx.People
            let order = p.IsQualityNetwork || p.IsEmployee ? 0 : 1
            orderby order, p.Name
            select new
            {
                p.Name,
                p.IsEmployee,
                p.IsQualityNetwork,
            }

He utilizado la sintaxis de consulta fluida para poder mostrarte la let palabra clave. let le permite declarar una variable de rango que luego se puede reutilizar en su consulta, esto puede ser muy útil si tiene un condicional que se usa en muchos lugares, o si necesita encadenar múltiples condicionales.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *