数据库中的实体框架更新模型不为tt类中新添加的表生成cs类

Dev*_*Dev 15 asp.net asp.net-mvc entity-framework asp.net-mvc-4 entity-framework-5

我在visual studio 2012中使用实体框架5.

我确实有一个现有的模型.现在我想为现有模型添加一个新表.为此我打开了edxm文件并使用右键单击我成功更新了模型.

现在,在模型的"EntityTypes"下的"Model Browser"中,我可以看到表名存在.但是在解决方案资源管理器中,它没有显示我在.tt文件下新添加的表的自动生成的.cs文件.

我试过"运行自定义工具",但它没有生成类.也重新启动了Visual Studio但结果是一样的.

谁能帮我?

谢谢

Dny*_*war 34

问题

  1. 如果您tblEmployee在数据库中有表名但在添加"实体数据模型"之后,您已在EDMX文件中更改了实体tblEmployee,Employee然后保存并生成.但是,在Model1.tt文件中不会自动生成更改名称的类.
  2. 当" 从数据库更新模型 "添加新表时出现相同的问题.
  3. 在MVC中也不可用使用EntityFramework使用模型类创建视图/使用操作创建控制器

这个问题适用于VS2012的早期版本.这个问题在VS2012的升级版本中得到了解决.

我们为VS2012和EF 5.0的早期版本提供了解决方案

按照步骤

  1. 右键单击On Model1.tt并选择"运行自定义工具"保存并立即生成,然后生成类.
  2. 右键单击On Model1.Context.tt并选择'Run Custom Tool'save and Build Now看看属性IN Context类就像生成一样

    public DbSet<Employee> Employees { get; set; } 
    
    Run Code Online (Sandbox Code Playgroud)

保存并构建解决方案

Model1Context context=new Model1Context();
List<Employee> empList= context.Employees.ToList();
Run Code Online (Sandbox Code Playgroud)

这对我有用.但请记住,当使用VS2012的MVRC在MVC中"使用entityframework创建控制器和视图"时,EF 6.0仍然无法制作脚手架.您必须使用EF 5.0或使用新更新更新VS2012.


Dev*_*Dev 5

我自己解决了。

问题出在文件文件 .Context.tt 和文件名 .tt中。

const string inputFile两个文件中指定的变量的图文件名与现有图文件(.edmx文件)不同。使用现有的图文件名对其进行更新,然后从数据库中更新模型。现在工作正常。