私は新しいdataservicesを構築していますので、web api odataを使用すると思いました。そこで私は、自分のエンティティフレームワークモデルクラスのアクションを生成するための足場を使って、自分のプロジェクトにコントローラを追加しました。生成されたputメソッドまたはpatchメソッドを試すまで、すべてがうまくいった。 URLからのGUID IDはバインドされますが、私が試したことに関係なく、私はDelta変数をバインドできません。それは常にnullです。グーグル・グーグルの日の後、私は2011年頃より新しいものは見つけられず、それらの解決法は機能しません。誰かがこれらを束縛する方法を知っていますか?それは私が常にJSONを送信しようと何の違いを行う場合デルタをバインドする方法web api2 odata 3コントローラで
メソッドシグネチャ
[AcceptVerbs("PATCH", "MERGE")]
public async Task<IHttpActionResult> Patch([FromODataUri] Guid key, Delta<AttachmentProposal> patch)
私のWeb APIの設定
public static void Register(HttpConfiguration config)
{
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<AttachmentProposal>("AttachmentProposals");
builder.EntitySet<AttachmentAction>("AttachmentActions");
config.Routes.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());
config.MapHttpAttributeRoutes();
私のモデルは
public Guid Id { get; set; }
public string name { get; set; }
public DateTime createDate { get;set; }
public virtual HashSet<AttachmentActions> {get; set;}
のようなものです。典型的なリクエストボディの私が試してみた
{ name: 'some name' }
または
{ every: 'value', single: 'value', property: 'value', on: 'value', my: 'value' model: 'value' }