繁体   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