Was ist das Problem?Verwendung von Delta <T> von Microsoft ASP.NET-Web-API OData mit Code First JsonMediaTypeFormatter
Ich versuche, das Patchen in meiner ASP.net Web API App zu aktivieren. Ich verwende Code First Entity Framework.
Ich habe die folgende Methode Header, die ich in einen Haltepunkt festgelegt und es wird getroffen:
[AcceptVerbs("PATCH")]
public async Task<HttpResponseMessage> Patch(long appId, long id, Delta<SimpleFormGroup> formGroup)
Allerdings, wenn ich formGroup.Patch (juristische Person) nennen, sind meiner Einheit keine Änderungen vorgenommen. Wenn ich folgendes in das unmittelbare Fenster setze:
formGroup.GetChangedPropertyNames()
Dann ist diese Sammlung leer, was falsch scheint.
Was habe ich versucht?
I bezogen habe auf die folgenden Beispiele
http://techbrij.com/http-patch-request-asp-net-webapi http://www.strathweb.com/2013/01/easy-asp-net-web-api-resource-updates-with-delta/
Es scheint ein Problem mit dem Json Media Formatter nicht zu wissen, wie das Delta-Objekt korrekt in der zweiten Verbindung, jedoch zu bauen filip scheint darauf hinzuweisen, dass es ohne oDataMediaTypeFormatter funktionieren sollte.
Ich habe angefangen, mein Modell zu EDMX-Darstellung zu serialisieren, dann von dort die CSDL extrahieren, so dass ich einen oDataMediaTypeFormatter erstellen kann, aber ich habe auch dort einen Haken gefunden, und es scheint ein bisschen übertrieben.
Wenn jemand Licht darauf werfen könnte, wäre es sehr geschätzt. Lassen Sie mich wissen, wenn weitere Informationen benötigt werden.
EDIT:
Hier ist die Klassendefinition für SimpleFormGroup:
public class SimpleFormGroup
{
public int LastUpdate;
public string Identifier;
public string Title;
public int DisplayOrder;
}
Und hier ist die Daten, die ich zu senden bin:
Content-Type: 'application/json'
{ "DisplayOrder" : "20 }
Danke, Pete
Können Sie die Klassendefinition für SimpleFormGroup und den JSON, den Sie in der Anfrage an PATCH senden, hinzufügen? –
Siehe oben ... Ich habe im Moment tatsächlich einen Workaround dafür gefunden, aber ich würde gerne Ihre Gedanken hören. –
Das ist kein gültiger JSON, wenn man das Zitat links von den 20 berücksichtigt. Gibt es ein Schlusszitat herum der Wert oder kein Öffnungszitat? – Rich