如何使用Code First Entity Framework 4.1获取完整对象
我试图作为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 Annotations的好资源。 如果你能建议一个好的,那就有答案,你可以给我链接,这对我来说就够了!
问候,
圭多
更新
我按照Saxman添加了虚拟关键字,现在处理循环引用错误问题。
在相关实体之前添加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来投影匿名对象。
了解加载相关对象