Asp.net mvc WebApi OData元数据/描述

Asp.net mvc WebApi OData元数据/描述,asp.net-mvc,excel,odata,Asp.net Mvc,Excel,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

我正在使用新的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);
ODataModelBuilder modelBuilder=新ODataConventionModelBuilder();
modelBuilder.EntitySet(“产品”);
Microsoft.Data.Edm.IEdmModel model=modelBuilder.GetEdmModel();
config.Routes.MapODataRoute(“ODataRoute”,“odata”,model);
这似乎神奇地连接了odata“服务”描述文件,并调用了我的产品控制器,它的格式很好地为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();
config.Routes.MapODataRoute("ODataRoute", "odata", model);
您告诉web API使用刚刚构建的服务模型在~/OData/(第二个参数)处公开OData服务

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

另外两个问题,

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


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

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

当你这么做的时候

DataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Job>("Products");
Microsoft.Data.Edm.IEdmModel model = modelBuilder.GetEdmModel();
config.Routes.MapODataRoute("ODataRoute", "odata", model);
您告诉web API使用刚刚构建的服务模型在~/OData/(第二个参数)处公开OData服务

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

另外两个问题,

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

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