問題是什麼?如何使用來自Microsoft ASP.NET Web API OData的Delta <T>與Code First JsonMediaTypeFormatter
我想在我的ASP.net web api應用程序中啓用修補程序。我使用代碼第一個實體框架。
我有,我可以在設置一個斷點下面的方法頭,它會擊中:
[AcceptVerbs("PATCH")]
public async Task<HttpResponseMessage> Patch(long appId, long id, Delta<SimpleFormGroup> formGroup)
然而,當我打電話formGroup.Patch(實體),沒有任何修改,我的實體作出。如果我把以下內容放到直接窗口中:
formGroup.GetChangedPropertyNames()
然後這個集合是空的,這看起來是錯誤的。
我試過了什麼?
我一直在參照下面的例子
http://techbrij.com/http-patch-request-asp-net-webapi http://www.strathweb.com/2013/01/easy-asp-net-web-api-resource-updates-with-delta/
這似乎是使用JSON的MediaType格式化一個問題不知道如何正確地構建增量對象,然而在第二連桿filip似乎暗示它應該在沒有oDataMediaTypeFormatter的情況下工作。
我已經開始嘗試將我的模型序列化到EDMX表示,然後從那裏提取CSDL,所以我可以創建一個oDataMediaTypeFormatter,但我也遇到了一個障礙,再加上它似乎有點矯枉過正。
如果任何人都可以擺脫這一點,它將不勝感激。讓我知道是否需要更多信息。
編輯:
下面是SimpleFormGroup類的定義:
public class SimpleFormGroup
{
public int LastUpdate;
public string Identifier;
public string Title;
public int DisplayOrder;
}
這裏是我發送的數據:
Content-Type: 'application/json'
{ "DisplayOrder" : "20 }
謝謝,皮特
您可以爲SimpleFormGroup添加類定義,並將請求中發送的JSON添加到PATCH中? –
請參見上面...我實際上已經找到了解決此問題的一個解決方法,但是我也希望能夠聽到您的想法 –
考慮到20左側的引用,這不是有效的JSON。價值還是沒有開盤報價? – Rich