簡體   English   中英

WebApi OData元數據/說明

[英]WebApi OData Metadata / Description

我正在使用新的2012.2 OData東西(Microsoft ASP.NET Web API OData)並遵循基本示例。 我有一個非常基本的POCO,通過我的MVC網站/ odata可以“神奇地”看到它:

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

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

這似乎神奇地連接了odata“服務”描述文件,並調用了我的Products控制器,該控制器的格式很好,為ATOM。

我的問題與POCO,描述和元數據有關。 這里發生了很多魔術,我不知道在哪里可以找到文檔。 我希望能夠:

  • 為我的實體提供“描述”屬性(Excel 2013在“數據連接向導”中顯示了此屬性)

  • 用用戶友好的名稱覆蓋我的POCO的類名稱。 另外,我可以即時設置動態值。

我真的不知道是什么生成了“ /odata/magic.svc”文件,所以我不知道如何找到該文件。 這是WebApi,OData,EntityFramework嗎?

謝謝!

沒有生成的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);

您告訴Web API使用您剛剛構建的服務模型在〜/ odata /(第二個參數)處公開OData服務。

並且,當您嘗試獲取url〜/ odata / Products時,添加的OData路由知道您正在嘗試訪問Products實體集並將其路由到ProductsController。 我將嘗試撰寫有關ODataConventionModelBuilder使用的約定和默認OData路由約定的博客文章。

關於其他兩個問題,

1)沒有提供原子元數據的現成支持。 但是,您可以通過使用向OData格式化程序添加可擴展性點的夜間刪除來覆蓋原子元數據。 有關詳細信息,請參閱此答案

2)我們目前不支持別名。 所以,那里沒有運氣。 不過,這是我們未來計划中的頭號項目之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM