Wie verwenden von Delta - <T> von Microsoft ASP.NET Web-API OData mit Code First\JsonMediaTypeFormatter

Was ist das Problem?

Ich versuche, aktivieren, patchen in meinem ASP.net web-api-app. Ich bin mit entity framework code first.

Habe ich die folgende Methode header kann ich einen breakpoint setzen, und Sie wird getroffen:

[AcceptVerbs("PATCH")]
public async Task<HttpResponseMessage> Patch(long appId, long id, Delta<SimpleFormGroup> formGroup)

Jedoch wenn ich anrufen formGroup.Patch(entity), werden keine änderungen vorgenommen zu meiner Person. Wenn ich Folgendes in das Direktfenster:

formGroup.GetChangedPropertyNames()

Dann diese Sammlung ist leer, was falsch scheint.

Was habe ich versucht?

Ich habe unter Bezugnahme 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/

Scheint es ein problem mit dem Json-MediaType-Formatter nicht wissen, wie man die Delta-Objekt richtig, aber im 2. link, filip scheint zu suggerieren, dass es funktionieren sollte ohne die oDataMediaTypeFormatter.

Habe ich begonnen, auf der ganzen Linie zu versuchen, serialise mein Modell zu EDMX-Vertretung, um dann von dort aus extrahieren der CSDL -, so kann ich erstellen Sie eine oDataMediaTypeFormatter, aber ich habe getroffen einen Haken gibt es auch, plus es scheint ein bisschen übertrieben.

Wenn jemand könnte alle vergossen Licht auf diesen, es würde sehr geschätzt. Lassen Sie mich wissen, wenn noch mehr 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 sind die Daten die ich sende:

Content-Type: 'application/json'

{ "DisplayOrder" : "20 }

Dank, Pete

Können Sie fügen Sie die Klassendefinition für SimpleFormGroup und der JSON-Sie senden die Anfrage an den PATCH?
Siehe oben... ich habe tatsächlich festgestellt, dass eine Abhilfe für dieses für den moment, aber ich wäre daran interessiert, Ihre Gedanken zu hören
Das ist kein gültiges JSON, wenn man bedenkt das Zitat auf der linken Seite der 20. Gibt es eine Schließung zitieren, um den Wert oder nicht öffnen-Angebot?
Ich Frage mich, was hat sich verändert zwischen webapi 1 und webapi 2. Delta verwendet, um die Arbeit mit JSON.NET ganz Prima WebAPI 1 mit Filip Delta-code

InformationsquelleAutor beyond-code | 2013-02-06

Schreibe einen Kommentar