如何:在数据库发生更改时更新 EDM

ADO.NET 实体数据模型设计器(实体设计器)使用模型更新向导根据数据库更改而更新实体数据模型 (EDM)。模型更新向导根据数据库更改而更新 EDM 时将会覆盖存储模型。模型更新向导还会对概念模型和映射进行某些更改,然而只在对象添加到数据库时才会进行这些更改。例如,当表添加到数据库时,新的实体类型将会添加到模型中;当列添加到表中时,新的属性将会添加到实体类型中。有关 EDM 进行了哪些更改的详细信息,请参见模型更新向导对 EDM 所做的更改

模型更新向导执行以下操作:

  • 如果已从数据库中删除某个对象,则该向导将从存储模型中移除该对象。更新映射规范,以使概念模型中的对象不再映射到已不再存在的存储元素。现有概念模型对象不会被删除。

  • 如果已在数据库中添加某个对象(或者某对象未包含在先前的模型中),那么您可以选择将该对象添加到模型中。使用新添加的对象更新存储模型。对于表或视图(不是存储过程),创建相应的实体类型,并将该实体类型映射到该对象。

  • 如果已更新某个对象,则该向导将更新存储模型中的对象定义。如果已在表或视图中添加任何新列,那么将使用匹配的属性更新相应的实体类型。如果相应的实体类型是继承层次结构的一部分,那么只通过匹配的属性更新距该层次结构的根最近的受影响实体。这将避免为层次结构中的子实体定义与其上级实体相同的属性。

在数据库发生更改时更新 EDM

  1. 在**“模型浏览器”中,右键单击模型的 .edmx 文件,然后选择“从数据库更新模型”**。

    模型更新向导启动。如果没有为 EDM 指定任何数据库连接,则会出现**“选择数据库连接”对话框。否则,将会出现“选择数据库对象”**对话框。

  2. 如果出现**“选择数据库连接”**对话框,请为模型指定数据库连接。否则,转至下一步骤。

    有关指定连接的详细信息,请参见“选择您的数据连接”对话框。指定连接之后,请单击**“下一步”以显示“选择数据库对象”**对话框。

  3. 单击**“添加”**选项卡。

    出现关于表、视图和存储过程的节点。如果有任何对象已经添加到数据库中(或者不曾在先前的模型中),则可以展开对应的节点以查看所添加的对象。

  4. 展开**“表”“视图”“存储过程”**节点,然后选中要添加到 EDM 中的对象。

  5. 单击**“刷新”**选项卡。

    出现现有存储模型中的表、视图和存储过程的对应节点。对于这些数据库对象所做的任何更改将会反映在更新之后的存储模型中。将列添加到表或视图时将会更改概念模型。

  6. 单击**“删除”**选项卡。

    出现关于表、视图和存储过程的节点。如果某个对象已经从数据库中删除,并且曾在先前的模型中,则可以展开对应的节点。这些节点中的对象将会从更新之后的模型中删除。

  7. 单击**“完成”**以根据数据库更改而更新 EDM。

Note注意

只有对于添加到数据库中的对象,概念模型才会进行更新。其他所有的概念模型更改都必须手动更改。有关更新概念模型的信息,请参见 实体数据模型工具任务实体框架任务

另请参见

概念

模型更新向导对 EDM 所做的更改

其他资源

ADO.NET 实体数据模型设计器
实体数据模型工具任务
ADO.NET 实体数据模型设计器方案