我得到EF的自我引用问题,我试图结束它,但仍然允许服务能够执行一个GET {[FromODataUri]诠释键}传递一个密钥和如有必要,返回一个IQuerable对象来获取扩展表。以下是这些表格的精简版本。有关如何处理这种情况的任何建议。EF WebAPI自回参考循环
public class People
{
public int PeopleId {get;set;}
public string PeopleName {get;set;}
public int? ProductId{get;set;}
public virtual Product Product{get;set;}
}
ProductId是产品中的PK,但不是必需的。按照惯例,它不必被PK DataAnnotation覆盖。
public class Product
{
public Product()
{
PeopleCollection = HashSet<People>();
}
public int ProductId {get;set;}
public string ProductName {get;set;}
public virtual ICollection<People> Peoples{get;set;}
}
的WebAPI被序列化您的回复,但是产品参考人,其中引用了一个产品,它引用的人,其引用的产品。您可能需要重新考虑是否有必要在您的People类中使用Product,或者可能会将您的实体映射到避免此循环引用的DTO。 – Tom
我应该补充说,这可能是启用了“延迟加载”的症状,因为序列化程序正在查看属性并加载实体。 – Tom
可能的重复http://stackoverflow.com/questions/19467673/entity-framework-self-referencing-loop-detected – Tom