1
私はいくつかのテーブルを結合するLINQ To Entitiesを持っています。ここで私が使用するLINQがあります。linq to非常に遅い
var lastestEntry = (from c in etDataContext.Child_HomeVisitor
join s in etDataContext.ServiceCoordinators
on c.HomeVisitorID equals s.ServiceCoordinatorID
join ch in etDataContext.CountyHomeVisitorAgencies
on c.CountyHomeVisitorAgencyId equals ch.CountyHomeVisitorAgencyID
join a in etDataContext.Agencies
on ch.AgencyID equals a.AgencyID
join f in etDataContext.ServiceCoordinatorFundingSourceTypes
on c.PrimaryFundingSourceID equals f.ServiceCoordinatorFundingSourceTypeId
into joinFundingSource
from j in joinFundingSource.DefaultIfEmpty()
where c.ChildID.Equals(childID)
orderby c.EffectiveStartDate descending, c.CreatedDateTime descending
select new
{
c.EffectiveStartDate,
s.FirstName,
s.LastName,
a.Description,
j.FundingSource
}).FirstOrDefault();
LINQPADで約20秒実行されますが、生成されたSQL文を実行すると1秒になります。私はLINQ文からこのSQL文を生成するのにほとんどの時間が費やされていると思いますが、なぜそれが長くかかるのでしょうか?