【发布时间】:2014-07-27 16:52:39
【问题描述】:
感谢document,我能够在服务器端使用 WebApiOdata 和 EntityFramework 创建 OData (v3) 服务,并在客户端创建 Breeze。
现在我想对 OData 规范的第 4 版做同样的事情。但有一个问题。 Breeze 提供的EdmBuilder 类依赖于与版本 3 相关的“Microsoft.Data.Edm”。
在EdmBuilder 中,这两行阻止了项目的构建:
using Microsoft.Data.Edm.Csdl;
using Microsoft.Data.Edm.Validation;
这很正常,因为我的项目引用了“Microsoft.OData.Edm”(适用于 v4)而不是“Microsoft.Data.Edm”(适用于 v3)。
所以我用这个替换了 2 个 using 语句:
using Microsoft.OData.Edm;
using Microsoft.OData.Edm.Csdl;
using Microsoft.OData.Edm.Validation;
现在项目可以构建了,但是在运行时它会抛出这个异常
"解析EDMX文档时遇到如下错误: UnexpectedXmlElement :元素“Edmx”对于根来说是意外的 元素。根元素应该是 Edmx。 : (1, 40)"
此时来自EdmBuilder 类:
using (var reader = XmlReader.Create(stream))
{
return EdmxReader.Parse(reader);
}
有没有办法解决这个问题???像我可以在某处下载的新 EdmBuilder 课程?
P.S.:我使用代码优先迁移和此代码在“WebApiConfig”中配置 OData 路由:
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "OData",
model: EdmBuilder.GetEdm<MyDbContext>(),
batchHandler: new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
【问题讨论】:
标签: asp.net entity-framework asp.net-web-api odata breeze