如何:在数据库发生更改时更新 .edmx 文件(实体数据模型工具)

ADO.NET 实体数据模型设计器(实体设计器)使用模型更新向导基于对数据库的更改更新 .edmx 文件。 作为此过程的一部分,模型更新向导会覆盖存储模型。 模型更新向导还会对概念模型和映射进行某些更改,然而只在对象添加到数据库时才会进行这些更改。 例如,当向数据库添加表时会向概念模型添加新的实体类型,当向表添加列时会向实体类型添加新属性。 有关对 .edmx 文件所做的更改的详细信息,请参见模型更新向导对 .edmx 文件所做的更改

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

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

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

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

在数据库发生更改时更新 .edmx 文件

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

    模型更新向导启动。 如果未指定任何数据库连接,则会显示“选择数据库连接”对话框。 否则,将会显示“选择数据库对象”对话框。

  2. 如果显示“选择数据库连接”对话框,请指定一个数据库连接。 否则,转至下一步骤。

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

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

    出现关于表、视图和存储过程的节点。 如果已向数据库添加任何对象(或者这些对象未包含在先前的存储模型中),则可以展开相应的节点以查看可添加到概念模型的对象。

    Cc716697.note(zh-cn,VS.100).gif注意:
    如果已从概念模型中删除某个对象,但尚未从存储模型中删除,则该对象将不能添加到概念模型中。有关更多信息,请参见如何:从存储模型中删除对象(实体数据模型工具)

  4. 展开“表”“视图”“存储过程”节点并检查要添加到 .edmx 文件中的对象。

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

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

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

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

  7. 单击“完成”以用数据库更改更新 .edmx 文件。

Cc716697.note(zh-cn,VS.100).gif注意:
只有对于添加到数据库中的对象,概念模型才会进行更新。其他所有的概念模型更改都必须手动更改。有关更新概念模型的信息,请参见 实体数据模型工具任务

另请参见

概念

ADO.NET 实体数据模型设计器
模型更新向导对 .edmx 文件所做的更改

其他资源

实体数据模型工具任务
实体数据模型工具方案