有什么问题吗?
我正在尝试在我的 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,但我也在那里遇到了障碍,而且它似乎有点矫枉过正。
如果有人能阐明这一点,我们将不胜感激。如果需要更多信息,请告诉我。
EDIT:
以下是 SimpleFormGroup 的类定义:
public class SimpleFormGroup
{
public int LastUpdate;
public string Identifier;
public string Title;
public int DisplayOrder;
}
这是我发送的数据:
Content-Type: 'application/json'
{ "DisplayOrder" : "20 }