私はいくつかの集計データを取得するために多くのサブクエリを持つエンティティクエリに、次のLINQを持っているとSQL /エンティティクエリに:リファクタリングLINQ多くのサブクエリ
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
@マチュー唯一の方法ですか? – Dismissile