您可以尝试
virtual从所有导航属性中删除关键字以禁用延迟加载和代理创建,然后使用快速加载来显式加载所需的对象图:
public ActionResult GetAll(){ return Json(ppEFContext.Orders .Include(o => o.Patient) .Include(o => o.Patient.PatientAddress) .Include(o => o.CertificationPeriod) .Include(o => o.Agency) .Include(o => o.Agency.Address) .Include(o => o.PrimaryDiagnosis) .Include(o => o.ApprovalStatus) .Include(o => o.Approver) .Include(o => o.Submitter), JsonRequestBehavior.AllowGet);}参考您以前的文章,您的应用程序似乎也不依赖于延迟加载,因为您在那里引入了虚拟属性来延迟加载对象图,这可能会导致序列化麻烦。
编辑
不必
virtual从导航属性中删除关键字(这将使模型完全无法进行延迟加载)。在代理受干扰的特定情况下(例如序列化),禁用代理创建(也将禁用延迟加载)就足够了:
ppEFContext.Configuration.ProxyCreationEnabled = false;
这仅对特定的上下文实例禁用代理创建
ppEFContext。
(我刚刚看过,@ WillC在这里已经提到过。请对此答案表示支持。)



