entity framework:当数据库更改时,如何刷新模型?

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

你删除整个模型和重新生成,或者你能检测到变化?

我看到一个post提到“更新你的模型”rt。 鼠标命令EDMX文件,但我没有看到它。

更新你的EDMX,以反映你的数据库(.net LINQ实体)

我刚刚开始。

你在看devise师还是代码视图? 您可以通过右键单击您的EDMX文件并selectOpen With -> ADO.NET Entity Data Model Designer来强制devise器打开

右键单击EDMXdevise器的devise器表面,然后单击Update Model From Database...

所有实体默认情况下都会刷新,只有您select了新的实体才会被添加。


编辑:如果它不清爽。

  • selectEDMXdevise器中的所有表格和视图。
  • 删除它们。
  • 然后,从数据库更新模型

我发现devise师“从数据库更新”只能处理小的变化。 如果你已经删除表,更改外键或(gasp)用函数映射改变了存储过程的签名,你最终会得到这样一个混乱的状态,你将不得不删除所有的实体和“从数据库中添加”或者干脆删除edmx资源并重新开始。

这可能会帮助你们(我把这个应用到了我的项目中)

这是3个简单的步骤。

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

而已。 它将同步/刷新您的模型库的数据库上的变化。

有关详细说明。 请访问下面的链接。

首先使用ASP.NET MVC的EF数据库:更改数据库并更新其模型。

我只需要更新.edmx模型。 模型/运行自定义工具选项没有刷新我的领域,但一旦我打开graphicsdevise器,我能够手动重命名字段。

更新CodeFirst模型是不可能的。 我也不推荐。 因为代码的好处之一是你可以使用POCO类。 如果你改变了这个POCO类,你不想要一些自动生成的代码来破坏你的工作。

但是,您可以创build一些模板解决scheme添加您的更新/添加实体到新模型。 然后收集并移动您的新的CS文件到您的工作项目。 这样你就不会有冲突,如果它是一个新的实体,你可以简单地添加相关的CS文件到现有的项目。 如果是更新,只需从文件中添加一个新的属性即可。 如果您只是在一两个表格中添加几列,您可以手动将它们添加到您的POCO类中,而不需要额外的工作,这就是使用Code-First和POCO类的美妙之处。