Contexto:Uso de propiedades de navegación de código marco de la entidad primeros
- Código En primer lugar, Entity Framework 4.3.1;
- Usuario ---- Tema, 1 a Muchos relación;
User
conpublic virtual ICollection<Topic> CreatedTopics
Propiedad de navegación (Lazy Loading);Topic
conpublic virtual User Creator
Propiedad de navegación;DataServiceController : DbDataController<DefaultDbContext>
, Web API beta, ASP.NET MVC 4 Beta, Aplicación de una sola página;- System.Json for Json serialization;
Web API Acción:
public IQueryable<Topic> GetTopics() { // return DbContext.Topics; // OK return DbContext.Topics.Include("Creator"); //With Exception }
Resultado: "una excepción Microsoft .NET Framework no controlada en w3wp.exe"
El problema aquí parece ser: lo que debería no Agregar propiedad de navegación en ambas entidades (¿Referencia circular de la causa?), y si elimino la propiedad de navegación CreatedTopics
en User
Clase, lo hará estar bien de nuevo
Así, en un contexto similar análogos enumerados, aquí están mis preguntas:
- ¿Cómo lidiar con las propiedades de navegación en la situación de 1 a Muchos relación;
- Además, ¿qué tal un Muchos a muchos relación, tengo que dividirlo en dos 1 a muchas relaciones;
- ¿Cuáles son las mejores prácticas y precauciones para usar las propiedades de navegación?
He leído muchos mensajes relacionados, pero todavía no lo suficientemente claras :(,
Gracias por cualquier ayuda
Dean
¿DataContractJsonSeriaizer es el serializador Json predeterminado para Web API Beta? – Dean
Estoy usando 'DataContract (IsReference = true)' y 'DataMember' temporalmente, ¿hay algún artículo detallado sobre esto? También estoy interesado en la opción de DTO, pero no lo logré, pasaré más tiempo y agradezco la buena respuesta. – Dean