如何获得完整的对象与代码优先实体框架4.1
本文关键字:实体 框架 代码 何获得 对象 | 更新日期: 2023-09-27 17:49:01
我试图返回JSON完全深的对象(与所有的外键关系填写),但我得到所有引用的对象为空。
下面是获取对象的调用:
public ActionResult GetAll()
{
return Json(ppEFContext.Orders, JsonRequestBehavior.AllowGet);
}
这里是Order对象本身:
public class Order
{
public int Id { get; set; }
public Patient Patient { get; set; }
public CertificationPeriod CertificationPeriod { get; set; }
public Agency Agency { get; set; }
public Diagnosis PrimaryDiagnosis { get; set; }
public OrderApprovalStatus ApprovalStatus { get; set; }
public User Approver { get; set; }
public User Submitter { get; set; }
public DateTime ApprovalDate { get; set; }
public DateTime SubmittedDate { get; set; }
public Boolean IsDeprecated { get; set; }
}
我还没有找到一个很好的资源使用EF 4.1注释。如果你能建议一个好的,有答案的,你可以给我链接,这对我来说就足够了!
问候,圭多
我添加了虚拟关键字按萨克斯曼和我现在处理循环引用误差问题。
在相关实体前添加virtual
关键字:
public class Order
{
public int Id { get; set; }
public virtual Patient Patient { get; set; }
public virtual CertificationPeriod CertificationPeriod { get; set; }
public virtual Agency Agency { get; set; }
public virtual Diagnosis PrimaryDiagnosis { get; set; }
public virtual OrderApprovalStatus ApprovalStatus { get; set; }
public virtual User Approver { get; set; }
public virtual User Submitter { get; set; }
public DateTime ApprovalDate { get; set; }
public DateTime SubmittedDate { get; set; }
public Boolean IsDeprecated { get; set; }
}
如果您的对象相互引用,您可能会以A circular reference was detected while serializing an object...
错误结束。在这种情况下,您将需要创建一个ViewModel
或类似的东西来克服这个问题。或者使用LINQ投影匿名对象
阅读加载相关对象