【发布时间】:2012-12-18 07:09:03
【问题描述】:
我有一个查询,它返回带有过滤孩子的父母:
Context.ContextOptions.LazyLoadingEnabled = false;
var query1 = (from p in Context.Partners
where p.PartnerCategory.Category == "03"
|| p.PartnerCategory.Category == "02"
select new
{
p,
m = from m in p.Milk
where m.Date >= beginDate
&& m.Date <= endDate
&& m.MilkStorageId == milkStorageId
select m,
e = p.ExtraCodes,
ms = from ms in p.ExtraCodes
select ms.MilkStorage,
mp = from mp in p.MilkPeriods
where mp.Date >= beginDate
&& mp.Date <= endDate
select mp
}).Where(
p =>
p.p.ExtraCodes.Select(ex => ex.MilkStorageId).Contains(
milkStorageId) ).OrderBy(p => p.p.Name);
var partners = query1.AsEnumerable().ToList();
查询返回 200 条记录,从 IOrderedQueryable ToList() 转换非常慢。为什么?
在 sql server management studio 中分析查询后,我注意到查询执行时间为 1 秒并返回 2035 条记录。
【问题讨论】:
-
你能发布分析器的详细信息吗?因为你确实运行了一个分析器,不是吗?
标签: c# linq entity-framework