No estoy seguro de si esto es solo un mal hábito, o una forma válida de hacer las cosas, pero para grandes consultas de informes complejos que abarcan racimos de tablas, a menudo obtengo mis estadísticas agregadas al sumar una declaración Case
.¿Cuál es el LINQ equivalente a SUMA (CASO CUANDO X = Y THEN 1 ELSE 0 END)?
Por ejemplo:
SELECT Contact.Name,
SUM(CASE WHEN Order.Type = 'Special' THEN 1 ELSE 0 END) AS SpecialOrders,
SUM(CASE WHEN Order.Type = 'Magic' THEN 1 ELSE 0 END) AS MagicOrders,
FROM Contact
LEFT JOIN Order ON (Contact.ContactID = Order.ContactID)
¿Cómo voy a hacer esto en LINQ to SQL? (En vb.net, pero supongo que cualquier ejemplo .Net haría)
Dim Orders = _
From Order In DB.Orders
Select New With {.Name = Contact.Name,
.Special = If(Order.Type = "Special", 1, 0),
.Magical = If(Order.Type = "Magical ", 1, 0)}
necesito sumar los .Special
y .Magical
valores.
(En realidad, la consulta se extiende por varias tablas que consisten en informaciones evento de reserva, y la decisión de resumir un registro o no depende de los campos en varios de ellos)
Eso es C#, OP está buscando el equivalente de VB.Net. – JaredPar
"En vb.net, pero supongo que cualquier ejemplo de .Net haría" - eso es lo que dijo. Me temo que no hablo VB. –
Además, esto no realiza la unión que hace la consulta sql de OP. – paqogomez