¿Cómo eliminar la referencia circular en Entity Framework?

.net entity-framework orm

Pregunta

La referencia circular entre mi cliente y las entidades de pedido causó una excepción durante la serialización. ¿Hay alguna forma de forzar a EF a generar una referencia en una dirección entre estas dos entidades? ¡Gracias por adelantado!

Respuesta aceptada

Cuando necesito serializar, generalmente proyecto en otros tipos. Esto elimina las referencias circulares, además de otros datos que no quiero que se serialicen. Por ejemplo:

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);

Respuesta popular

He resuelto este problema en EF 3.5 cambiando la propiedad de navegación del niño Getter de público a interno.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué