Breeze和EdmBuilder for OData v4

时间:2014-07-27 16:52:40

标签: asp.net entity-framework asp.net-web-api odata breeze

由于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));

1 个答案:

答案 0 :(得分:7)

我们目前正在开发一个适用于OData v 4.0的微风版本。我将在发布时发布回来,这应该是在不久的将来。