0

私は新しい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' } 

答えて

0

のようなもののサービスを参照して、コンソールアプリケーションを作成し、トラフィックを見て答えを考え出しました。他の誰かがこの問題を抱えている場合は、odata.typeを追加してみてください:要求のjsonに「あなたのオブジェクトのタイプは何ですか」

関連する問題