gpt4 book ai didi

asp.net-mvc - WebApi OData 元数据/描述

转载 作者:行者123 更新时间:2023-12-03 02:09:45 24 4
gpt4 key购买 nike

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

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

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

  • 使用用户友好的名称覆盖 POCO 的类名称。作为奖励,允许我动态地动态设置它。

我真的不知道是什么生成了“/odata/magic.svc”文件,所以我不知道如何找到有关它的文档。这是 WebApi、OData、EntityFramework 吗?

谢谢!

最佳答案

没有生成 magic.svc。您已完成构建 OData 服务所需的 3 个步骤。引用这个tutorial和这个博客post了解详情。

当你这样做时,

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

您已经构建了 EDM model用于您的 OData 服务。

当你这样做时,

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

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

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

关于另外两个问题,

1) 对于提供原子元数据没有开箱即用的支持。但是,您可以通过使用为 OData 格式化程序添加可扩展性点的夜间删除来覆盖原子元数据。引用这个answer了解详情。

2) 我们现在不支持别名。所以,没有运气。不过,这是我们 future 计划中的首要项目之一。

关于asp.net-mvc - WebApi OData 元数据/描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15608151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com