问题是什么?
我正在尝试在我的 ASP.net Web api 应用程序中启用补丁。我正在使用代码优先实体框架。
我有以下方法头,我可以在其中设置断点,它会命中:
[AcceptVerbs("PATCH")]
public async Task<HttpResponseMessage> Patch(long appId, long id, Delta<SimpleFormGroup> formGroup)
但是,当我调用 formGroup.Patch(entity) 时,不会对我的实体进行任何更改。如果我将以下内容放入即时窗口:
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 Formatter 不知道如何正确构建 Delta 对象似乎是一个问题,但是在第二个链接中 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 }