Breeze JS:从1.4.4升级到1.4.5以支持Entity Framework 6模型后,manager.fetchMetadata()出错

时间:2013-11-12 21:09:29

标签: entity-framework breeze entity-framework-6 hottowel

我刚将Breeze(客户端和服务器)从1.4.4升级到1.4.5。 当我切换到指向升级Breeze的服务器时(使用Breeze 1.4.5,Entity Framework 6,Web Api 2,MVC 5),我在获取元数据时遇到以下错误(manager.fetchMetadata())。这是我的错误消息:

  

元数据查询失败:   http://localhost:50015/breeze/Application/Metadata。无法做到   解析或导入元数据:错误的导航属性; [object Object]

如果我指向基于Breeze 1.4.4,Entity Framework 5,Web Api 1,MVC 4的服务器,我的SPA不会在manager.fetchMetadata()上中断。它不会成为.fail的承诺。

两个Entity Framework模型都指向同一个数据库,它们具有相同的实体和相同的数据。

这个bug是否被引入Breeze 1.4.5?或者我在升级过程中错过了一步?基本上我在我的微风控制器中使用完全相同的代码,从1.4.4到1.4.5。 Breeze客户端也升级到1.4.5。 如果您需要元数据,请告诉我,我可以提供。

2 个答案:

答案 0 :(得分:1)

我发现了问题,我调试了获取元数据的函数,我发现了一些客户端实体,这些实体是使用指向旧的Entity Framework 5命名空间的关联定义的。它在Breeze中的CsdlMetadataParser.parse中抛出异常。我更正了名称空间,问题得到了解决。

答案 1 :(得分:0)

抱歉,我不知道你遇到了什么。我们将大部分微风样本转换为使用Breeze 1.4.5和WebApi 2 / Entity Framework 6,因此您可能需要查看它们。这包括DocCode和ToDo / Angular样本(以及其他)。我的猜测是升级过程中遗漏了一些东西。

我发现首先删除所有相关的nuget包然后重新安装通常会解决这些问题。

如果你想出来的话请回复,以便我们可以让别人知道。