WebApi OData元数据/说明

我正在使用新的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“服务”描述文件,并调用我的产品控制器,它被很好地格式化为ATOM。

我的问题与POCO,描述和元数据有关。 这里有太多的魔力,我不知道在哪里find文件。 我希望能够:

  • 为我的实体提供一个“描述”属性(Excel 2013在数据连接向导中显示)

  • 用用户友好名称覆盖我的POCO的类名称。 作为奖励,让我dynamic地设置这个dynamic。

我真的不知道是什么产生“/odata/magic.svc”文件,所以我不知道如何find它的文档。 这是WebApi,OData,EntityFramework?

谢谢!

没有生成magic.svc。 您已经完成了构buildOData服务所需的3个步骤。 有关详细信息,请参阅本教程和此博客文章 。

当你做了,

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

您已经为您的OData服务构build了EDM模型 。

当你做了,

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

您正在告诉Web API使用您刚刚构build的服务模型在〜/ odata /(第二个参数)处公开OData服务。

当您尝试访问url〜/ odata / Products时,您添加的OData路由知道您正在尝试访问Products实体集并将其路由到ProductsController。 我将尝试撰写有关ODataConventionModelBuilder使用的约定和默认OData路由约定的博客文章。

关于另外两个问题,

1)提供primefaces元数据没有开箱即用的支持。 但是,您可以通过使用向OData格式化程序添加可扩展性点的夜间删除来覆盖primefaces元数据。 有关详细信息,请参阅此答案 。

2)我们现在不支持别名。 所以,那里没有运气。 这是我们未来计划中的首要任务之一。