我在visual studio 2012中使用实体框架5。
我确实有一个现有的模型。现在我想为现有模型添加一个新表。为此,我打开了edxm文件并使用右键单击我成功更新了模型。
现在,在模型的“EntityTypes”下的“Model Browser”中,我可以看到表名存在。但是在解决方案资源管理器中,它没有显示我在.tt文件下新添加的表的自动生成的.cs文件。
我试过“运行自定义工具”,但它没有生成类。也重新启动了Visual Studio但结果是一样的。
谁能帮我?
谢谢
问题
tblEmployee
但是在添加“实体数据模型”之后,您已在EDMX文件中将实体tblEmployee
更改为Employee
,然后保存并生成。但是,在Model1.tt文件中不会自动生成更改名称的类。这个问题适用于VS2012的早期版本。这个问题在VS2012的升级版本中得到了解决。
解
我们为VS2012和EF 5.0的早期版本提供了解决方案
按照步骤
public DbSet<Employee> Employees { get; set; }
保存并构建解决方案
Model1Context context=new Model1Context();
List<Employee> empList= context.Employees.ToList();
这对我有用。但请记住,当使用VS2012的MVRC在MVC中“使用entityframework创建控制器和视图”时,EF 6.0仍然无法制作脚手架。您必须使用EF 5.0或使用新更新更新VS2012。
在这种情况下,我所做的只是删除令人兴奋的模型,然后单击添加,只需添加新添加的表格!
如果这是edmx文件位于文件夹中的错误,现在已修复 - 下载并安装VS 2012 Update 1.您可以从以下位置获取:
http://www.microsoft.com/visualstudio/eng/downloads#d-visual-studio-2012-update
我自己解决了。
问题出在文件filename.Context.tt和filename.tt中。
两个文件中指定的变量const string inputFile
的图文件名与现有图文件(.edmx文件)不同。使用现有图表文件名更新它,然后从数据库更新模型。现在工作正常。
我已将主键添加到新表中。这解决了问题。