J'ai la LINQ suivante pour interroger des entités qui a beaucoup de sous-requêtes pour obtenir un peu de données globales:Refactor LINQ to SQL/Entités requête avec plusieurs sous-requêtes
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 */
};
J'écourté la requête pour inclure uniquement les deux des sous-requêtes , mais il pourrait y en avoir 10-15 plus. Existe-t-il un moyen de refactoriser la requête pour nettoyer le code? Je ne cherche pas une augmentation de performance. Je veux juste nettoyer le code en mettant peut-être les sous-requêtes dans des méthodes distinctes tout en s'assurant qu'il s'agit d'un appel unique à la base de données. Est-ce possible?
Si vous voulez un code plus propre, vous pouvez envisager de créer une procédure stockée dans votre base de données – Mathieu
@Mathieu Est-ce la seule façon, cependant? – Dismissile