Saltar al contenido

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

Solución:

Cuando necesito serializar, generalmente proyecto en otros tipos. Esto elimina las referencias circulares, además de otros datos que no quiero serializar. 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);

Cuando crea una asociación en el diseñador de modelos (haga clic con el botón derecho en agregar-> asociación), obtendrá una ventana emergente que se ve así:

Agregar ventana de asociación

Observe las casillas de verificación de la propiedad de navegación, puede deseleccionarlas si no desea que se generen. Para resolver su problema de referencia circular, asegúrese de que solo se marque uno o ninguno, no ambos.

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

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *