Asp.Net l'API Web de l'Erreur: Le "ObjectContent`1' type échoué à sérialiser le corps de la réponse pour le type de contenu application/xml; charset=utf-8'

Exemple le plus simple de ceci, j'obtiens une collection et essayez de sortie via l'API Web:

//GET api/items
public IEnumerable<Item> Get()
{
    return MyContext.Items.ToList();
}

Et j'obtiens l'erreur:

Objet de type

Système.Les données.Objets.ObjectQuery`1[Dcip.L'Ams.BO.EquipmentWarranty]'
ne peuvent être converties en type

Système.Les données.De l'entité.DbSet`1[Dcip.L'Ams.BO.EquipmentWarranty]'

C'est une jolie commune erreur de le faire avec les nouvelles procurations, et je sais que je peux le résoudre en définissant:

MyContext.Configuration.ProxyCreationEnabled = false;

Mais qui défait le but de beaucoup de ce que je suis en train de faire. Est-il un meilleur moyen?

  • Comment désactiver le proxy défaite de la sérialisation d'un objet?
  • Sa un objet proxy, pas le POCO
  • Désactiver le proxy à l'échelle mondiale signifie que vous n'obtenez pas l'utilisation de chargement paresseux propriétés de navigation. Je suis d'accord que ce n'est pas une bonne solution si vous devez les propriétés de navigation. Toujours à la recherche d'une réponse à moi-même pour ce problème.
InformationsquelleAutor naspinski | 2012-12-19