我得到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