我正在尝试将项目从EF 4.3.1升级到EF 6.0
模板使用ObjectContext
现在,每当我更改模板时,它都会使用旧的EF 4.3.1命名空间覆盖* .Designer.cs文件中生成的代码,因此构建会中断。
有什么方法可以阻止这种情况发生吗?我看不到一个* .tt文件。重新生成EDMX并不是一个真正的选择,因为对概念模型进行了重要的定制(我已经好几天了!)。
我尝试创建一个新的EDMX作为测试,并表现出同样的问题。只要我将代码生成更改为{默认'以用于ObjectContext
用法,就会使用旧的命名空间编写EDMXName.Designer.cs文件。
using System;
using System.ComponentModel;
using System.Data.EntityClient;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Linq;
using System.Runtime.Serialization;
using System.Xml.Serialization;
这让我分心 - 我想我将不得不将其破解为EF 5.0
答案 0 :(得分:22)
我已经解决了这个问题。这是因为您已从EF 5.X升级到EF 6.X,您的edmx仍然是旧的传统生成策略。
你需要什么:
使用Nuget更新所有项目到EF 6发布
对于C#下载http://visualstudiogallery.msdn.microsoft.com/66612113-549c-4a9e-a14a-f629ceb3f89a
对于VB.net下载http://visualstudiogallery.msdn.microsoft.com/ff479d55-2c85-43c5-a4d6-21cd659435ea
安装其中一个扩展后,您需要备份edmx和designer文件(或使用源代码管理)。重新启动Visual Studio。
重新启动Visual Studio后,您想要进入项目并且:
T4
这将为您提供ObjectContext
派生的上下文以及与较新的EF 6.0名称空间相匹配的所有内容。