由于document,我能够在服务器端使用WebApiOdata和EntityFramework创建OData(v3)服务,在客户端使用Breeze创建服务。
现在我想对OData规范的第4版做同样的事情。但有一个问题。 Breeze提供的EdmBuilder
课程取决于' Microsoft.Data.Edm'这与版本3有关。
在EdmBuilder
这两行阻止项目建立:
using Microsoft.Data.Edm.Csdl;
using Microsoft.Data.Edm.Validation;
这是正常的,因为我的项目引用了Microsoft.OData.Edm&#39;(对于v4)而不是&#39; Microsoft.Data.Edm&#39;(对于v3)。< / p>
所以我用这个替换了2 using
语句:
using Microsoft.OData.Edm;
using Microsoft.OData.Edm.Csdl;
using Microsoft.OData.Edm.Validation;
现在项目可以构建,但在运行时它会抛出此异常
此时来自&#34;解析EDMX文档时遇到以下错误: UnexpectedXmlElement:元素&#39; Edmx&#39;根本意外 元件。根元素应该是Edmx。 :(1,40)&#34;
EdmBuilder
课程的:
using (var reader = XmlReader.Create(stream))
{
return EdmxReader.Parse(reader);
}
有没有办法解决这个问题?就像我可以在某处下载的新EdmBuilder
课程一样? :)
感谢。
P.S。 :我使用代码首次迁移和此代码在WebApiConfig&#39;中配置OData路由。 :
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "OData",
model: EdmBuilder.GetEdm<MyDbContext>(),
batchHandler: new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
答案 0 :(得分:7)
我们目前正在开发一个适用于OData v 4.0的微风版本。我将在发布时发布回来,这应该是在不久的将来。