我们使用的是实体框架,当我们的项目设置为生成 .NET 4.5 时,我们创建了 EDMX。现在我们想切换到 .NET 4.0,但当我们这样做时,我们会收到 EDMX 文件的编译错误。
它指出以下错误:
Error 10027: The XML namespace for the conceptual model's schema element is not supported on this project's target framework version.
除了重新创建EDMX文件之外,还有其他解决方案吗?
假设不使用 .NET Framework 4.5 附带的功能(枚举、空间类型、具有多个结果集的存储过程),则可以执行以下操作(请务必备份文件以防万一):
- 创建面向 .NET Framework 4.5 的新控制台应用
- 将 edmx 文件添加到项目中
- 将项目重新定位到面向 .NET Framework 4(转到项目属性,更改目标框架版本)
这应该会导致将 edmx 降级到 v2。
或者,可以手动将 xml 命名空间和版本更改为 v2。可以在此处找到要用于每个版本的项目的命名空间:
- 电火花
- 中科多利
- 固态硬盘
- MSL
编辑请注意,使用 EF6/EF6.x,您可以在 .NET Framework 4 上使用 Edmx v3,从而获得以前仅在 .NET Framework 4.5 上可用的所有优点(如枚举)。
对于它的价值,我将目标框架切换回 4.5,重新编译解决方案,遇到一堆错误,将其切换回 4.0 并得到消息:
"成功为新的目标框架重建了 edmx"
从那里我能够重新编译而没有任何命名空间错误耸耸肩
注意对于VS 2012上的那些,需要单独安装 如果要在 EDMX v3 上保留 .Net 4 项目。实体框架 6 Visual Studio 2012 的工具 – Jeff 1 月 27 日 2:09
Pawel回答的上述评论解决了我的问题。 我正在将其复制到自己的答案中,以便人们可以找到它。