EDMX .NET 4.5到4.0?

我们正在使用entity framework,当我们的项目设置为构建.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附带的function(枚举,空间类型,具有多个结果集的存储过程),您可以执行以下操作(请确保备份文件以防万一):

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

这会导致您的edmx降级为v2。

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

  • EDMX
  • CSDL
  • SSDL
  • MSL

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

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

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

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

请注意,对于VS 2012上的用户,如果要在edmx v3上保留.Net 4项目,则需要单独安装。 适用于Visual Studio 2012的entity framework6工具 – Jeff 1月27日2:09

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