Mir fällt es wirklich schwer, vom WCF-Datendienst auf Web-API v4 zu migrieren. Ich stecke auf dem folgenden Problem fest:
odata web api scheint @ odata.bind nicht zu unterstützen.
Ich habe den folgenden Link gefunden:
Ссылка
Dort schlug jemand vor, eine eigene ODataEntityDeserializer
abgeleitete Klasse wie folgt zu implementieren:
LinkedEntityCollection ist eine Basisklasse für meine Entitätsklassen, die als Wörterbuch dient ( MyEntity : LinkedEntityCollection
implementation ist trivial).
Registrierung in der http-Konfiguration:
%Vor%Wenn Sie jedoch diesen Hack verwenden, verlieren Sie die Fähigkeit, Links zwischen Enities zu erstellen, wie in diesem Artikel beschrieben: Ссылка
Die "@ odata.id" wird nicht analysiert, es wird angenommen, dass es sich um eine Entität in der Funktion ODataEntityDeserializer.Read
handelt. Vielleicht vermisse ich etwas grundlegend hier, da ich ziemlich neu in Web-API bin ( config.Formatters.Clear()
scheint ein bisschen hart). Oder gibt es eine andere Problemumgehung, um @ odata.bind zu unterstützen?
Gibt es eine Chance, dass diese Funktion in naher Zukunft implementiert wird?
Aktualisieren
Ich habe meinen Hack arbeiten lassen. Das Problem war, dass ich ExtendedODataDeserializerProvider
von DefaultODataDeserializerProvider
anstelle von ODataDeserializerProvider
abgeleitet und die Deserializer entsprechend zurückgegeben haben sollte:
Also die Frage, die bleibt: wann bekommen wir @ odata.bind Unterstützung in asp.net webapi odata?
Versuche zu antworten
Also die Frage, die bleibt: wann bekommen wir @ odata.bind Unterstützung in asp.net webapi odata?
Im vnext-Repo scheint eine entsprechende Funktion zu bestehen. Das Problem ist jedoch als wenig belastend gekennzeichnet. Ссылка und daher gibt es keine Möglichkeit zu wissen, wann diese Funktion implementiert wird.
Tags und Links c# odata asp.net-web-api-odata