VS 2013和Entity Framework 6中不存在类型或命名空间名称“ModelName”[edmx / tt下的cs文件]

时间:2013-11-25 04:30:56

标签: c# entity-framework entity-framework-6

我将一个项目从VS 2012和EF 5升级到VS 2013和EF 6.我在这一行上不断收到构建错误:

using CsCta.CtaSqlModel;    

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

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

有点神秘的方面是删除违规行“使用CsCta.CtaSqlModel;”在缺少的定义(对于EF 6 dbcontext实体)上产生了大量的构建错误 - 所以看起来编译器从该行获得了一些有用的信息,即使它抱怨它是无效的。 ---另外,如果我将行更改为“使用CsCta.CtasqlModel;” (改变情况)然后我得到zillion构建错误;当我把它改回到正确的情况“使用CsCta.CtaSqlModel;”然后我得到一个构建错误。因此,有问题的使用声明正在得到承认。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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