Mam następujący LINQ podmiotom kwerendy, która ma wiele podzapytania trochę zbiorczych danych:Refactor LINQ to SQL/podmioty kwerendy z wieloma podkwerend
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 */
};
I skróconą się zapytanie tylko to 2 z podzapytania , ale może być ich około 10-15. Czy istnieje sposób, w jaki mogę refaktoryzować zapytanie, aby oczyścić kod? Nie szukam wzrostu wydajności. Chcę po prostu posprzątać kod przez wprowadzenie podkwerendy w osobne metody przy jednoczesnym upewnieniu się, że jest to pojedyncze połączenie z bazą danych. Czy to możliwe?
Jeśli potrzebujesz czystszego kodu, możesz rozważyć utworzenie procedury przechowywanej w bazie danych. – Mathieu
@Mathieu Czy to jednak jedyny sposób? – Dismissile