如何使用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来投影匿名对象。

了解加载相关对象