2016-10-19 9 views
3

switch文と参考文献:WepApi 2 ODATAコントローラーポスト/入れRelationsips /リンク/ WEBAPI 2+コントローラとハンドリングの関係ででのOData V3(#REF)またはV4(#links)を使用して

は、switch文です唯一の方法?

それぞれの2つのリソースは、各ナビゲーションプロパティのスイッチケースの必要性を示しているようです。

  • Entity Relations in OData V3
  • Entity Relations in OData V4

    switch (navigationProperty) 
    { 
        case "Supplier": 
         // Note: The code for GetKeyFromUri is shown later in this topic. 
         var relatedKey = Helpers.GetKeyFromUri<int>(Request, link); 
         var supplier = await db.Suppliers.SingleOrDefaultAsync(f => f.Id == relatedKey); 
         if (supplier == null) 
         { 
          return NotFound(); 
         } 
    
         product.Supplier = supplier; 
         break; 
    
        default: 
         return StatusCode(HttpStatusCode.NotImplemented); 
    } 
    

質問:私はハードコードに各ナビゲーションプロパティのswitch文を想定し、そうであれば、この自動を持ってする方法がありますアム - 魔法の足場?

+0

サンプルコードを追加したり、サンプルシナリオを追加したりしてください。 –

+0

リンクのコードサンプルを追加しました。 – ttugates

答えて

2

このような問題がありました(v4)。これをベースコントローラexampleで解決しました。 2つのベースコントローラーがあります:ナビゲーション(あなたの場合)とCRUD操作 - 3番目の使用例です。コードはきれいではありません(私は不必要な詳細を削除しようとしています)が、そのアイデアはかなり明確だと思います。私はそれがこの問題を解決する最善の方法だとは思わないが、文字列でプロパティを追加したり削除したりする簡単な方法は見つけられていない。私はよりエレガントな答えを知りたいです。私の英語には申し訳ありません。

+1

これに答えてGitHubGistを作成していただき、ありがとうございます。私はあなたの解決策が好きです。そして、あなたは外国語(あなたへの)言語でstackOverflowの質問に答えています。何も謝罪することはありません。 – ttugates

関連する問題