实体框架:当数据库更改时,如何刷新模型?

Cha*_*adD 60 entity-framework

如果从数据库构建edmx文件然后db更改,那么如何让模型获取更改?

您是删除整个模型并重新生成还是可以检测到更改?

我看到一篇文章提到"更新你的模型"rt.edmx文件上的鼠标命令,但我没看到它.

更新edmx以反映数据库中所做的更改(.net linq-to-entities)

我刚开始.

jha*_*ldt 70

你在看设计师或代码视图吗?您可以通过右键单击EDMX文件并选择来强制设计人员打开Open With -> ADO.NET Entity Data Model Designer

右键单击EDMX设计器的设计器表面并单击 Update Model From Database...

默认情况下刷新所有实体,只有在选择新实体时才会添加新实体.


编辑:如果它不爽快.

  • 在EDMX设计器中选择所有表和视图.
  • 删除它们.
  • 然后,从数据库更新模型

  • 是否可以通过编程方式执行此操作?我想将此作为构建过程的一部分. (4认同)

小智 18

我发现设计师"从数据库更新"只能处理小的变化.如果你删除了表,更改了外键或(gasp)用函数映射更改了存储过程的签名,你最终会遇到这样一个混乱状态,你必须删除所有实体并"从数据库中添加"或者只是删除edmx资源并重新开始.


Bim*_*cia 5

这可能对你们有所帮助。(我已将其应用于我的项目)

这是3个简单的步骤。

  1. 转到您的解决方案资源管理器。查找.edmx文件(通常在根级别找到
  2. 打开该 .edmx 文件,将出现一个模型图窗口。右键单击该窗口的任意位置并选择“从数据库更新模型”。出现更新向导窗口。单击完成以更新您的模型。
  3. 保存该 .edmx 文件。

就是这样。它将根据数据库上的更改同步/刷新您的模型。

如需详细说明。请访问以下链接。

EF Database First with ASP.NET MVC:更改数据库并更新其模型。