Einfachstes Beispiel dafür, erhalte ich eine Sammlung und versuchen Sie es über Web-API zur Ausgabe:Asp.Net-Web-API-Fehler: Der Typ "ObjectContent" 1 konnte den Antworttext für den Inhaltstyp "application/xml" nicht serialisieren. charset = utf-8'
// GET api/items
public IEnumerable<Item> Get()
{
return MyContext.Items.ToList();
}
Und ich bekomme die Fehlermeldung:
Object of type
'System.Data.Objects.ObjectQuery`1[Dcip.Ams.BO.EquipmentWarranty]' cannot be converted to type
'System.Data.Entity.DbSet`1[Dcip.Ams.BO.EquipmentWarranty]'
Dies ist eine hübsche häufiger Fehler mit den neuen Proxies zu tun, und ich weiß, dass ich es durch das Setzen beheben können:
MyContext.Configuration.ProxyCreationEnabled = false;
Aber das besiegt den Zweck eine Menge von dem, was ich zu tun versuchen. Gibt es einen besseren Weg?
Wie Wird beim Proxy-Server das Serialisieren eines Objekts deaktiviert? –
Es ist ein Proxy-Objekt, nicht das eigentliche POCO. – naspinski
Wenn Sie den Proxy global deaktivieren, können Sie keine Lazy-Loaded-Navigationseigenschaften verwenden. Ich stimme zu, dass dies keine richtige Lösung ist, wenn Sie die Navigationseigenschaften benötigen. Suche immer noch nach einer Antwort für dieses Problem. – Paul