どうした?
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 オブジェクトを正しく構築する方法を認識していないことが問題のようですが、2 番目のリンクでは、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 }