【问题标题】:Wrong OData EntityContainer Schema Namespace错误的 OData EntityContainer 架构命名空间
【发布时间】:2023-03-17 17:20:01
【问题描述】:

我使用 ASP.NET MVC WebApi 作为 OData 服务,我想用 Jaydata 查询这个 OData 服务。

Jaydata 有一个命令行工具 (JaySvcUtil.exe),它可以下载服务定义 ($metadata) 并通过生成必要的样板代码来创建功能齐全的 JayData / JavaScript 客户端环境。

Web API + Odata 正在生成这个 $metadata 页面: https://gist.github.com/3917081#file_metadata.xml

WebApiConfig: https://gist.github.com/3917081#file_web_api_config.cs

当我跑步时

JaySvcUtil.exe -m http://odataserver.com:52132/api/$元数据 -o 脚本/test.js -n Test.Testing

它将生成这个 javascript 文件 https://gist.github.com/3917081#file_jaydatafile.js

问题出在生成的javascript文件中:

Default.context = new Default.Container( { name:'oData', oDataServiceHost: 'http://servername:52132/api' });

命名空间 = “Default”,因为 $metadata 页面中有以下值。

Schema Namespace="Default" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"

如何在 $metadata 页面中更改或删除此命名空间值?

【问题讨论】:

    标签: c# asp.net-web-api odata jaydata asp.net-web-api-odata


    【解决方案1】:

    已在 odata nightly build 中得到支持。 http://aspnetwebstack.codeplex.com/discussions/353867

    将软件包升级到最新的签名版本后。您可以更改模型构建器上的命名空间。

        private static IEdmModel GetEdmModel()
        {
            ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
            modelBuilder.Namespace = "xxx";
            modelBuilder.EntitySet<ProductionOrder>("ProductionOrders");
            return modelBuilder.GetEdmModel();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-03
      • 2023-04-09
      • 2013-07-14
      • 2010-10-19
      • 2012-04-05
      • 2015-05-31
      • 2012-11-03
      相关资源
      最近更新 更多