我有以下的LINQ to Entities查詢其中有許多子查詢得到一些總體數據:重構的LINQ to SQL /實體與許多子查詢查詢
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 */
};
我縮短了查詢僅包括子查詢2 ,但可能會有10-15個左右。有沒有一種方法可以重構查詢來清理代碼?我不想看到性能提升。我想通過將子查詢放入單獨的方法來清理代碼,同時仍然確保它是對數據庫的單個調用。這可能嗎?
如果你想要一個更乾淨的代碼,你可能要考慮在你的數據庫 – Mathieu 2012-03-12 17:10:46
@Mathieu創建一個存儲過程,只有這樣,雖然? – Dismissile 2012-03-12 17:18:49