我有以下查询,根据提供的标准获取学校列表。注意:这个数据库非常非常大,有 10,000 多条记录。最终结果是 188 所学校的列表,这正是我们需要的。
return (from s in Context.Schools
join d in Context.Districts on s.DistrictID equals d.DistrictID
join r in Context.Rosters on s.SchoolID equals r.SchoolID
join te in Context.TestEvents on r.TestEventID equals te.TestEventID
join ta in Context.TestAdministrations on te.TestAdministrationID equals ta.TestAdministrationID
join sr in Context.ScoreResults on r.RosterID equals sr.RosterID into exists
from any in exists.DefaultIfEmpty()
where d.DistrictID == DistrictID
&& ta.SchoolYearID == SchoolYearID.Value
select s)
.Distinct()
.OrderBy(x => x.Name)
.ToList();
问题是当我们打电话return Json(Schools, JsonRequestBehavior.AllowGet);
将我们的学校送回给客户时,操作超时。在逐步执行代码时,由于某种原因,DbContext 试图提取此结果集的所有属性,包括我们不需要的属性。我已经从这个Schools
对象的数据库中获得了我需要的一切。为什么它会返回并开始创建所有关联的对象。有没有办法阻止这种情况?
这是一个使用 EF 5 Code First 的 MVC 应用程序。