如何刪除實體框架中的循環引用?

.net entity-framework orm

我的客戶和訂單實體之間的循環引用在序列化期間導致異常。有沒有辦法強制EF在這兩個實體之間生成單向引用?提前致謝!

一般承認的答案

當我需要序列化時,我通常會投射到其他類型。這消除了循環引用,以及我不想序列化的其他數據。例如:

var q = (from c in Repository.Customers()
         where c.Id == id
         select new 
         {
             Name = c.Name,
             Orders = from o in C.Orders
                      select new
                      {
                          Date = o.Date
                      }
         }).First();
return Json(q);

熱門答案

我已經在EF 3.5中解決了這個問題,將Child的導航屬性Getter從public更改為Internal。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因