2010-01-21 49 views

Respuesta

13

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

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

Add association window http://i45.tinypic.com/xmoqcp.jpg

Aviso las casillas de verificación propiedad de navegación, puede desmarcarlos si no desea que se generen. Para resolver su problema de referencia circular, asegúrese de que solo uno o ninguno estén marcados, no ambos.

+0

Lo siento, yo c No pongas al día lo que dijiste. ¿Puedes ponerlo más específico? ¡Gracias! – Roy

+0

Actualizado con captura de pantalla – Charlie

+0

Gracias Charlie, pero no puedo ver la imagen. Y mi diseñador no tiene casilla de verificación en él. :(Estoy usando Visual Studio 2008. – Roy

5

He resuelto este problema en EF 3.5 Cambiando la propiedad de navegación del Niño Getter de public a Internal.

+0

Gracias, eso funcionó para mí. No estoy del todo seguro si es la manera correcta de hacerlo! –

1

En serverlevel:

[DataContract(IsReference = true)] 

MSDN

+0

Esto funcionó para mí. – Rich

0

reloj esta página espero que podía hacer para sobrevivir
http://msdn.microsoft.com/en-us/data/jj574232.aspx

+3

Tenga en cuenta que [las respuestas con solo el enlace son disc uraged] (http://meta.stackoverflow.com/tags/link-only-answers/info), las respuestas SO deberían ser el punto final de una búsqueda de una solución (vs. otra escala más de referencias, que tienden a quedar obsoletas en el tiempo). Considere agregar una sinopsis independiente aquí, manteniendo el enlace como referencia. – kleopatra

0

El captador cambiando a lo interno para una navegación niño trabajó para mí con entitfy framework v5/v6 bajo Web API v2

+0

arregló la ayuda de la API web, pero mató a la serialización – marcusdev

Cuestiones relacionadas