Estoy tratando de dividir las consultas de linq a sql para que sean un poco más legibles.Creando fragmentos reutilizables de LINQ to SQL
Digamos que quiero devolver todos los pedidos de productos que en el año anterior tuvieron más de 100 pedidos. Tengo esta consulta:
from o in _context.Orders
where (from o1 in _context.Orders
where o1.Year == o.Year - 1 && o1.Product == o.Product
select o1).Count() > 100
select o;
Lo que me gustaría ser capaz de hacer es poner la consulta anidada en una función reutilizable:
private IQueryable<Order> LastSeasonOrders(Order order)
{
return (from o in _context.Orders
where o.Year == order.Year - 1 && o.Product == order.Product
select o);
}
que a su vez me permite cambiar la consulta original a:
from o in _context.Orders
where LastSeasonOrders(o).Count() > 100
select o;
Esto no funciona sin embargo, con una excepción diciendo que la llamada al método no se puede traducir a SQL cuando se ejecuta la consulta.
¿Algún consejo rápido sobre la forma correcta de lograrlo?
Me lo he estado preguntando pero no he podido preguntar. –