C# 类型或命名空间名称';型号名称';[edmx/tt下的cs文件]在VS 2013和实体框架6中不存在

C# 类型或命名空间名称';型号名称';[edmx/tt下的cs文件]在VS 2013和实体框架6中不存在,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,我将一个项目从VS 2012和EF 5升级到VS 2013和EF 6。我在这行中不断遇到生成错误: using CsCta.CtaSqlModel; (在旧版本中我没有): “类型或命名空间名称'CtaSqlModel'在命名空间'CsCta'中不存在” “CtaSqlModel”是指CtaSqlModel.edmx和CtaSqlModel.tt下的一个名为CtaSqlModel.cs的文件。这些是从现有数据库(DatabaseFirst)创建的EntityFramework 6文件

我将一个项目从VS 2012和EF 5升级到VS 2013和EF 6。我在这行中不断遇到生成错误:

using CsCta.CtaSqlModel;    
(在旧版本中我没有): “类型或命名空间名称'CtaSqlModel'在命名空间'CsCta'中不存在”

“CtaSqlModel”是指CtaSqlModel.edmx和CtaSqlModel.tt下的一个名为CtaSqlModel.cs的文件。这些是从现有数据库(DatabaseFirst)创建的EntityFramework 6文件

有点神秘的一点是,删除有问题的行“using CsCta.CtaSqlModel;”会在缺少定义的情况下(对于EF 6 dbcontext实体)产生大量构建错误——因此编译器似乎从该行中获得了一些有用的信息,尽管它抱怨该行无效。 ---此外,如果我将行更改为“usingcscta.CtasqlModel;”(以防更改),那么我将得到大量的构建错误;当我把它改回正确的情况“usingcscta.CtaSqlModel;”时,我得到了一个构建错误。因此,令人不快的using语句正在被识别出来

有什么建议吗?

更新:
几个小时后我解决了这个问题,但这是一种奇怪的行为。我浏览了代码窗口,发现了带有红线的错误(不在构建错误列表中),并更正了它们。然后,我删除了问题“using”语句,所有内容都编译得很好——所以很明显,这行代码不需要,或者EF6不需要。如果我发现另一个小故障,我将在这里再次更新。

当将现有项目从EF5移动到EF6时,您需要替换项目中的T4模板,因为在EF6中移动的类型和为EF5生成的代码不会针对EF6编译。我在博客上写了一点