4

我们正在使用实体框架,并在我们的项目设置为构建 .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 文件之外,还有其他解决方案吗?

4

3 回答 3

4

假设您不使用 .NET Framework 4.5 附带的功能(枚举、空间类型、具有多个结果集的存储过程),您可以执行以下操作(确保备份文件以防万一):

  • 创建面向 .NET Framework 4.5 的新控制台应用
  • 将 edmx 文件添加到项目中
  • 将项目重新定位到 .NET Framework 4(转到项目属性,更改目标框架版本)

这应该会导致您的 edmx 降级到 v2。

或者,您可以手动将 xml 命名空间和版本更改为 v2。您可以在此处找到每个版本的工件要使用的命名空间:

编辑 请注意,使用 EF6/EF6.x,您可以在 .NET Framework 4 上使用 Edmx v3,从而获得以前仅在 .NET Framework 4.5 上可用的所有优点(如枚举)

于 2013-09-10T16:23:14.140 回答
2

为了它的价值,我将目标框架切换回 4.5,重新编译解决方案,遇到一堆错误,将其切换回 4.0 并收到消息:

“成功为新目标框架重建edmx”

从那里我能够重新编译而没有任何命名空间错误耸了耸肩

于 2015-03-13T21:47:35.827 回答
2

请注意,对于 VS 2012 上的用户,如果您想在 edmx v3 上保留 .Net 4 项目,则需要单独安装。适用于 Visual Studio 2012 的实体框架 6 工具– 杰夫 1 月 27 日 2:09

帕维尔回答的上述评论解决了我的问题。我将其复制到自己的答案中,以便人们可以找到它。

于 2015-08-27T04:43:26.593 回答