2

私は新しい2012.2ODataのもの(Microsoft ASP.NET Web API OData)を使用しており、基本的な例に従っています。私は非常に基本的なPOCOを持っており、それは/odataのMVCサイトを介して「魔法のように」公開されています。

    ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Job>("Products");

Microsoft.Data.Edm.IEdmModel model = modelBuilder.GetEdmModel();
config.Routes.MapODataRoute("ODataRoute", "odata", model);

これは、odataの「サービス」記述ファイルを魔法のように結び付けて、ATOMとして適切にフォーマットされた私のProductsコントローラーを呼び出すようです。

私の質問は、POCO、説明、およびメタデータに関係しています。ここでは非常に多くの魔法が起こっています。ドキュメントがどこにあるのかわかりません。次のことができるようになりたいです。

  • エンティティに「説明」プロパティを提供します(Excel 2013はデータ接続ウィザード中にこれを表示します)

  • POCOのクラス名をユーザーフレンドリーな名前でオーバーライドします。そしてボーナスとして、これをオンザフライで動的に設定できるようにします。

その「/odata/magic.svc」ファイルを何が生成しているのか本当にわからないので、そのドキュメントを見つける方法がわかりません。これはWebApi、OData、EntityFrameworkですか?

ありがとう!

4

1 に答える 1

4

生成されるmagic.svcはありません。ODataサービスの構築に必要な3つのステップを完了しました。詳細については、このチュートリアルとこのブログ投稿を参照してください。

あなたがしたとき、

DataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Job>("Products");
Microsoft.Data.Edm.IEdmModel model = modelBuilder.GetEdmModel();

ODataサービスのEDMモデルを作成しました。

あなたがしたとき、

config.Routes.MapODataRoute("ODataRoute", "odata", model);

構築したばかりのサービスモデルを使用して、〜/ odata /(2番目の引数)でODataサービスを公開するようにWebAPIに指示しています。

また、URL〜/ odata / Productsをフェッチしようとすると、追加したODataルートは、Productsエンティティセットにアクセスしようとしていることを認識し、ProductsControllerにルーティングします。ODataConventionModelBuilderが使用する規則とデフォルトのODataルーティング規則についてブログに投稿しようと思います。

そして、他の2つの質問に関しては、

1)アトムメタデータを提供するためのすぐに使用できるサポートはありません。ただし、ODataフォーマッタに拡張性ポイントを追加したナイトリードロップを使用して、アトムメタデータをオーバーライドできます。詳細については、この回答を参照してください。

2)現在、エイリアシングはサポートされていません。だから、そこには運がない。しかし、これは私たちの将来の計画のトップアイテムの1つです。

于 2013-03-28T16:04:57.153 に答える