我正在尝试使用 EF5(数据库优先方法,因为存在现有数据库)更新项目以在 ASP.NET MVC4 中工作。我正在使用 VS2010 执行此操作。
我正在按照此示例中的步骤进行操作。
这些是我正在采取的步骤:
- 设置一个新的 MVC4 项目,简称为Project.NET
- 将实体数据模型创建为ProjectModel.edmx
- 连接字符串保存为ProjectEntities
- 模型命名空间设置为ProjectModel
- 添加一个名为ProjectModel.tt的 EF 5.x DbContext Generator 项
所以毕竟,它已经创建了 EF 使用的类;问题是这些类都是用项目的根命名空间创建的,而不是我提供的命名空间。
如果我打开任何生成的类,我会得到一个错误列表,这些错误是通过手动将命名空间更改为ProjectModel来修复的
我会很感激任何想法。
更新: 这是显示项目结构、生成代码示例和编译器错误的屏幕截图。
奇怪的是,它似乎只根据结构为命名空间抛出错误,因此在图像Project.Models作为命名空间会产生问题,但如果我输入其他任何内容,例如ProjectModels或Test,错误就会消失。当然,我可以更改所有文件的命名空间,但是每次模型更改和更新时,命名空间都会被重置并返回错误。
这个问题似乎与我遇到的问题相同,但不幸的是,给出的唯一答案是建议检查参考资料;我相信我的很好,因为存在 System.Data.Entity 和 EntityFramework。
更新 2: 如果我在代码生成期间没有选择所有表,则不会出现命名空间问题。我目前正在以 20 个表间隔更新模型,虽然有 400 个表,但我宁愿弄清楚实际问题是什么。我假设这是由于一个或多个表的结构或名称,但我不确定是否有关于表结构或关于 EF 命名的任何特定规则。