我正在使用ASP.NET MVC WebApi作为OData服务,我想用Jaydata查询这个OData服务。
Jaydata有一个命令行util(JaySvcUtil.exe),它可以下载服务定义($ metadata),并通过生成必要的样板代码来创建一个功能齐全的JayData / JavaScript客户端环境。
Web API + Odata正在生成此$元数据页面: 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/ $ metadata -o Scripts / 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' });
命名空间=“默认”,因为$ metadata页面中包含以下值。
Schema Namespace="Default" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"
如何在$ metadata页面中更改此命名空间值或将其删除?
答案 0 :(得分:4)
它在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();
}