53

如果我对我的 EF 5.0 模型进行任何更改,VS 似乎看不到这些更改。我尝试添加一个新表,该表在模型中显示良好,但是如果我尝试在某处使用它,该表不会出现在智能感知中,我无法使用它。

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

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

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

谢谢。

4

10 回答 10

72

首先构建您的项目,如果成功,请右键单击“model.tt”文件并选择运行自定义工具。它会修复它。

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

于 2013-10-02T05:35:11.517 回答
16

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

于 2012-11-28T07:22:00.210 回答
15

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

  1. 安装 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/

于 2012-11-28T06:29:09.770 回答
13

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

于 2015-03-27T12:23:00.143 回答
8

右键单击该.tt文件并选择“运行自定义工具”,这应该会更新它: 看图片

于 2017-01-13T10:15:29.037 回答
7

您应该在<XXX>Model.tt某处有一个文件,该文件是生成模型类的 T4 模板。

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

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

于 2012-11-19T19:51:38.670 回答
3

我搜索了这个答案,因为我在 VS2013 中遇到了类似的情况。就我而言,我发现一个简单的“ Clean Solution”清除了所有旧定义。

于 2015-05-19T17:09:45.663 回答
1

您在 N 层项目中工作吗?如果是这样,请在使用之前尝试重建您的数据层(或存储 EDMX 文件的任何位置)。

于 2012-11-19T19:42:16.813 回答
0

我也遇到过这个问题,在 model.tt 文件下没有生成任何类。就我而言,这取决于我如何在 SQL2012 中构建数据库。我将表中的一列设置为可为空的,这也是一个外键,虽然我认为你应该能够做到这一点,但它在 EF5 中引起了问题。

一旦这被清除并且图表从数据库中更新,它们就会重新出现。

EF5 VS2013

于 2015-10-01T14:11:41.507 回答
0

更改笔记本电脑后当我更新实体框架模型时,代码中看不到存储过程

我做了什么来使这个工作

  • 更新 Visual Studio 2012 更新 5(不工作)
  • 从程序更新/修改(不工作)
  • 更新存储过程后,再次构建项目然后转到 context.cs,右键单击并运行自定义工具(不工作)
  • 做RND(有人说问题是由于MSSQL中的一些权限)但不幸的是我在MSSQL中做了很多权限但是(不工作)
  • 安装 2019 并运行项目。现在一切正常

结论

  • Visual Studio 2012 有一个错误(错误已在更新 1、2、3 和 4 中解决)
  • 更改 Visual Studio 版本将解决问题
于 2021-05-20T10:12:03.943 回答