更新实体框架模型后,Visual Studio不会看到更改

Kyl*_*yle 51 c# entity-framework entity-framework-5

如果我对我的EF 5.0模型进行任何更改,VS似乎没有看到更改.我已经尝试添加一个新的表,它在模型中很好地显示,但是如果我尝试在某个地方使用它,表格不会出现在intellisense中,我也无法使用它.

我也尝试更改列的数据类型,如果我查看.edmx模型文件,它再次显示正常,但Visual Studio仍会在该字段上给出编译器错误,因为我试图分配不正确的数据类型.

如果我完全删除EDMX并重新创建它,那么更改工作正常.但每次我应该能够"从数据库更新模型"并重建时,从数据库重新生成是很烦人的.

我之前从未遇到过EF的这些问题.有谁知道这个问题的原因或解决方法?

谢谢.

Mah*_*azi 70

首先构建项目,如果成功,请将"model.tt"指向上下文.然后运行自定义工具.它会解决它.

再次构建您的项目并指向"model.context.tt"运行自定义工具.它将更新DbSet列表.


Paw*_*wel 16

如果这是位于文件夹中的edmx文件的错误,现在已修复 - 下载并安装VS 2012 Update 1.您可以从以下网址获取:http://www.microsoft.com/visualstudio/eng/downloads#d-视觉工作室2012年更新

  • 我有VS 2013 Update 1,但同样的错误发生了. (2认同)

Ghl*_*ouw 15

这显然是实体框架中的一个错误,当您的Edmx文件位于文件夹内时,模型不会更新.目前可用的解决方法是:

  1. 安装应该修复bug的VS 2012 Update 1.
  2. 如果您无法安装Update 1,则必须右键单击model.tt T4模板文件,然后单击运行自定义工具.这将为您更新课程.

希望能帮到那里的人.

链接:http://thedatafarm.com/blog/data-access/watch-out-for-vs2012-edmx-code-generation-special-case/


Kri*_*ian 12

我也有这个问题,但是,右键单击model.tt文件并运行"自定义工具"并没有对我产生任何影响,但是Ghlouw链接到的页面上的评论使用菜单项"BUILD" >转换所有T4模板." 这对我来说


Nic*_*ler 7

你应该有一个<XXX>Model.tt文件,它是生成模型类的T4模板.

如果它位于不同的项目中,则在保存edmx文件时不会更新.

无论如何,尝试在解决方案资源管理器中右键单击它并选择 Run Custom Tool


Tsh*_*dau 7

右键单击该.tt文件,然后选择"运行自定义工具",应该更新它: 看图像