Tengo el siguiente LINQ a Entidades consulta que tiene muchos sub consultas para obtener algunos datos agregados:Refactor LINQ a SQL/Entidades Consulte con muchas subconsultas
var systems = from s in db.Systems
orderby s.Name
select new SystemSummary
{
Id = s.Id,
Code = s.Code,
Name = s.Name,
LastException = (
from a in s.Applications
from e in a.Summaries
select e.CreationDate
).Max(),
TodaysExceptions = (
from a in s.Applications
from e in a.Summaries
where e.CreationDate >= today && e.CreationDate < tomorrow
select e
).Count(),
/* SNIP - 10-15 more subqueries */
};
Acorté hasta la consulta para incluir sólo 2 de las subconsultas , pero podría haber alrededor de 10-15 más de ellos. ¿Hay alguna manera de que pueda refactorizar la consulta para limpiar el código? No estoy buscando un aumento en el rendimiento. Quiero simplemente limpiar el código quizás colocando las subconsultas en métodos separados mientras me aseguro de que sea una sola llamada a la base de datos. ¿Esto es posible?
Si desea un código más limpio, quizás desee considerar la creación de un procedimiento almacenado en su base de datos – Mathieu
@Mathieu ¿Es esa la única manera? – Dismissile