如何删除实体框架中的循环引用?

.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。



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因