私は3つのテーブルを結合し、グループ化を実行するlinq to sqlクエリを1つ持っています。私はLinqPadでこのクエリによってSQL生成(実行)を検査する場合、ここで、6つのSQLステートメントは、クエリ巨大なSQLは、LinqからSQLへのグループ化のために生成
(from s in mktActualSales
join p in sysPeriods on s.PeriodID equals p.PeriodID
join d in setupDesignations on s.PositionID equals d.DesignationID
group new { s, p } by new{d.Title,d.DesignationID} into temping
select
new
{
SPOPosition = temping.Key.Title,
SalesPeriods = temping.Select(x=>new {PeriodID = x.p.PeriodID, StartDate = x.p.StartDate, EndDate = x.p.EndDate, SaleTargetID = x.s.ActualSaleID, IsApproved = x.s.IsApproved}),
PositionID = temping.Key.DesignationID
}).Take(5)
あるれます。最初のものは結合を実行し、グループ化と残りのクエリは同一のクエリを異なるパラメータで何度も繰り返し呼び出すだけです。明らかに、パラメータはグループのキーに含まれる値です。 130グループのレコードでは、linqがデータベースに131回ぶつかると私は信じています。どのようにしてデータベースに多くのヒットを保存できますか?私は結合されたクエリでToListを呼び出した後、つまりデータをメモリにロードした後にグループ化を実行する必要がありますか?
よろしく