创建和编辑实体关系

 

发布日期: 2017年2月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

实体关系定义记录如何在数据库中相互关联。 最简单的情况是,向实体中添加查找字段将在两个实体之间形成一个新的 1:N(一对多)关系,并使您能够将该查找字段放在窗体中。 利用查找字段,用户可以将该实体的多个“子”记录与单个“父”实体记录关联。

除了简单地定义记录如何相互关联以外,1:N 实体关系还提供可解决以下问题的数据:

  • 在删除某个记录时,是否还应删除与该记录相关的所有记录?

  • 分派记录时,是否还需将与该记录相关的所有记录分派给新负责人?

  • 在某个现有记录的上下亠中创建新的相关记录时,如何简化数据录入流程?

  • 查看某个记录的用户如何才能查看关联的记录?

实体还可以参与 N:N(多对多)关系,其中两个实体的任意数量的记录都可以彼此关联。

本主题内容

决定是使用实体关系还是连接

实体关系类型

创建和编辑 1:N 关系

映射实体字段

创建和编辑 N:N(多对多)关系

设置关系的托管属性

决定是使用实体关系还是连接

实体关系是对数据库进行更改的元数据。 这些查询关系允许查询以便非常高效地检索相关数据。 使用实体关系可以定义能定义实体或者大多数记录可以使用的正式关系。 例如,没有潜在客户的商机不是非常有用。 “商机”实体还与“竞争对手”实体有 N:N 关系。 此使得可以将多个竞争添加到商机中。 您可能需要获取此数据,并创建显示竞争对手的报表。

在称为连接的记录之间还存在其他不太正式的各种关系。 例如,了解两个联系人是否结婚,是工作外的朋友关系,或者是为另一个客户工作的联系人,可能会很有用。 大多数企业不会使用这种信息生成报表,或者要求输入此类信息,因此可能不值得创建实体关系。

实体关系类型

在查看解决方案资源管理器时,可能会想到有三种类型的实体关系。 实际上,只有下表中所示的两种关系。

关系类型

说明

1:N(一对多)

在这种实体关系中,“主要实体”的一个实体记录可以根据相关实体上的查找字段与多个其他“相关实体”记录关联。

在查看主要实体记录时,可以看到与其关联的相关实体记录的列表。

N:N(多对多)

依赖于特殊“关系实体”(有时称为相交实体)的实体关系,使一个实体的多个记录可以与另一个实体的多个记录关联。

在查看 N:N 关系中的任一实体的记录时,可以看到与其相关的另一个实体的所有记录的列表。

“N:1(多对一)”关系类型存在于解决方案资源管理器用户界面中,因为解决方案资源管理器会显示按实体分组的视图。 1:N 关系实际上存在于实体之间,并将每个实体称为主要实体相关实体。 相关实体(有时称为子实体)有一个查找字段,可用于存储对主要实体(有时称为父实体)中的记录的引用。 N:1 关系只是从相关实体角度来看的 1:N 关系。

创建和编辑 1:N 关系

创建 1:N 关系最轻松的方法是为实体创建一个新的查找字段。 这使您可以在将“类型”设置为“查找”时设置查找字段的公用字段值以及设置两个额外选项。 这另外两个字段是“目标记录类型”和“关系名称”。

在 1:N 关系中,“目标记录类型”选择“主要实体”。 “关系名称”会根据关系中的两个实体自动生成。 您通常不需要对此进行编辑;但需要时也可编辑。 实体关系的名称包含解决方案发布商为您当前使用的解决方案提供的自定义前缀。

备注

如果您在意自定义前缀,请确保您工作所在的解决方案上下文与所需前缀的解决方案发布商关联。

但是,在通过创建查找字段创建 1:N 关系时,会为您设置一些默认值。 如果要编辑关系中可用的一些选项,则必须找到关系的并编辑它。

无法为所有实体创建自定义 1:N 关系。 如果遇到这种情况,则无法选择使用解决方案资源管理器来创建新的自定义实体关系。 如果使用元数据浏览器,则可以根据 CanBePrimaryEntityInRelationshipCanBeRelatedEntityInRelationship 属性筛选实体列表。 有关更多信息,请参阅 使用元数据浏览器

1:N 关系的定义有四个部分:“关系定义”、“查找字段”、“主要实体的导航窗格项”和“关系行为”。

1:N Entity Relationship

创建或编辑实体之间的 1:N 关系

  1. 转到“设置”>“自定义”。

  2. 单击“自定义系统”。

  3. 在“组件”下,展开“实体”,然后展开工作时所需实体。

  4. 单击“1:N 关系”。

  5. 若要编辑关系或查看关系的详细信息,请选择关系,然后在“操作”工具栏上单击“更多操作”,再单击“编辑”。

    - 或 -

    若要添加新的关系,请单击“新建一对多关系”。

    重要

    如果“新建一对多关系”没有出现在“操作”工具栏上,则不可以为实体创建新的 1:N 关系。

  6. 对于新的关系,可在“关系定义” 部分,在“相关实体” 列表中,选择要关联的实体。

    备注

    为相关实体集指定一个“名称” 字段默认值。 如果您在保存之前更改“相关实体”,则“名称”字段的值将相应更改。

  7. 选择这是否为可搜索或不可搜索。

  8. 在“查找字段”部分,为“显示名称”字段中指定值。

    重要

    指定相关“显示名称”集默认值为“名称”字段。 如果您在保存之前更改查找字段的“显示名称”,则“名称”字段的值不会改变。 因此,请在保存之前,确保“名称” 是有意义的。

  9. 在“字段要求”列表中,选择一个选项以指定在保存记录之前字段的数据要求。

  10. 在“主要实体的导航窗格项”部分,请在“显示选项”列表中选择显示关联视图或自定义标签的选项。

  11. 在“关系行为”部分,可在“行为类型”列表中选择以下选项之一:

    • 。 在两个实体之间的父级关系中,对父实体记录执行的任何操作也可以对与首要(父)实体记录相关的所有子实体记录执行。

    • 引用。 在两个实体之间的引用关系中,可以导航到任何相关实体,但对一个实体执行的操作并不会影响另一个实体。

    • 引用,限制删除。 在两个实体之间的“引用,限制删除”关系中,您可以导航到任何相关记录。 对父记录执行的操作并不会应用到子记录,但是存在子记录时不能删除父记录。 注意,存在相关记录时不能删除记录。

    • 可配置的级联。 在两个实体之间的可配置的级联关系中,可选择与每一组可能的操作关联的行为。

      重要

      如果将上述操作的所有行为设置成与为其他“行为类型”关联的操作的行为相匹配,当保存关系时,“行为类型”自动设置为匹配类型。

    详细信息:MSDN:配置实体关系行为

  12. 单击“保存并关闭”以关闭“关系”表单。

  13. 完成自定义后,发布自定义项:

    • 若要只发布当前编辑的组件的自定义项,请在“操作”工具栏上,单击“发布”。

    • 若要同时发布所有未发布组件的自定义项,请在导航栏或导航窗格中单击“实体”,然后在“操作”工具栏上单击“发布所有自定义项”。

备注

  • 在与级联的相关系统实体的关系中,自定义实体不能为主要实体。 这表示在主要自定义实体和相关系统实体间不能与设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任何操作具有关系。

  • 如果新关系中的相关实体已作为其他关系(该其他关系具有设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任意操作)中的相关实体而存在,则任何新关系都不能具有设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任意操作。 这将防止创建具有多个父级的关系。

  • 在更改用户界面元素或执行实体的窗体脚本后,需要发布相应更改才能应用这些更改。 将立即应用更改 Microsoft Dynamics 365 数据架构的任何自定义项(例如自定义实体、关系或字段)。

  • 如果关系属于托管解决方案一部分时,托管解决方案的开发人员可以限制您自定义关系。

  • 安装解决方案或发布自定义项会干扰常规的系统操作。 我们建议您以对用户造成的干扰最少为宗旨,合理安排解决方案导入时间。

关系定义

根据您是从解决方案资源管理器选择创建“新建一对多关系”还是“新建多对一关系”,将预填充“主要实体”或“相关实体”。 您只需选择另一个。“名称”字段的默认值是根据解决方案发布商的自定义前缀以及您选择参与关系的实体的名称预填充的。 如果需要,可以对此进行编辑。 如果在两实体之间创建多个自定义关系,并为两个关系使用相同的自定义前缀,则自动生成的名称值将不是唯一的,您将无法保存新关系。 您必须编辑名称将其与任何现有名称区别开来,才能将其保存。 一旦保存,就无法更改。

如果不希望此实体关系在“高级查找”中出现,可将“可搜索”值设置为“否”。

查找字段

这些字段是所有字段都具有共同属性,但“可搜索”、“字段安全性”和“审核”除外。 若要编辑使用实体关系创建的这些查找字段的值,必须在创建实体关系后单独查找并编辑查找字段。详细信息:创建和编辑字段

根据一般规则,“显示名称”应对应于主要实体显示名称。

主要实体的导航窗格项

如果展开导航窗格,主要实体可以显示相关实体的列表。 此组中的选项控制如何以及是否显示此列表。 还可以使用窗体编辑器编辑这些导航项;通过使用 JavaScript,开发人员可以在窗体显示时将更改应用于这些项。

字段

说明

显示选项

  • 不显示:如果您不希望让用户能够导航到相关实体记录的列表,请选择此选项。

  • 使用自定义标签:如果希望指定要使用的自定义标签,请选择此选项。

  • 使用复数名称:如果您要使用相关实体的复数名称作为标签,请选择此选项。

自定义标签

如果选择“使用自定义标签”作为 显示选项,请输入要使用的自定义标签,而不是相关实体的复数名称。

显示区域

  • 详细信息:选择此选项可将导航项包括在“公用”组中。

  • 营销:选择此选项可将导航项包括在“营销”组中。

  • 销售:选择此选项可将导航项包括在“销售”组中。

  • 服务:选择此选项可将导航项包括在“服务”组中。

显示顺序

此数字控制导航项在所选显示区域中的位置。 允许的数字范围从 10,000 开始。 具有较低值的导航窗格项出现在具有较高值的其他关系上方。

关系行为

在 1:N 关系中,可以控制关系的行为方式以支持组织的业务规则。 您为什么要这样做? 让我们看一个示例。

假定您有一位新销售员,您希望向其分派一些当前分派给另一位销售员的现有商机。 每个商机记录可能有一些与其关联的任务活动。 您可以轻松地找到要重新分派的可用商机,并将其分派给新销售员。 但是,对于与这些商机关联的任何任务活动,会发生什么情况? 您是否打开每项任务,并决定是否也应将其分派给新销售员? 可能不需要。 您可以让关系自动应用一些标准规则。 这些规则只适用于与您要重新分派的商机关联的任务记录。 实体关系的名称为“商机_任务”。 您的选择是:

  • 重新分派所有可用任务。

  • 重新分派所有任务。 这是默认行为。

  • 不重新分派任务。

  • 重新分派当前分派给前一个商机负责人的所有任务。

关系可以控制对主要实体记录的记录执行的操作如何向下级联到所有相关实体记录。 操作和可能的行为如下表中所示。

操作​​

说明

可能的行为

分派​​

当主要实体记录更改了所有权时,会发生什么情况?

  • 可用项的级联

  • 全部级联

  • 无级联

  • 用户负责项的级联

共享​​

当主要实体记录共享时,会发生什么情况?

  • 可用项的级联

  • 全部级联

  • 无级联

  • 用户负责项的级联

取消共享

当主要实体记录停止共享时,会发生什么情况?

  • 可用项的级联

  • 全部级联

  • 无级联

  • 用户负责项的级联

重定父级

在主要实体记录中的父类型关系的查找字段值发生更改时,会发生什么情况?

父类型关系是对所有操作使用“全部级联”的关系。可自定义的父实体关系 列出了可自定义的父系统关系。

  • 可用项的级联

  • 全部级联

  • 无级联

  • 用户负责项的级联

删除键

当删除主要实体记录时,会发生什么情况?

  • 全部级联

  • 移除链接

  • 限制删除

合并​​

当主要实体记录与其他记录合并时,会发生什么情况?

  • 全部级联

  • 无级联

可以配置其中的每个操作以控件操作如何通过 1:N 实体关系向下级联与主要实体记录相关的记录。 下表列出了行为选项。

行为

说明

可用项的级联

对所有可用的相关实体记录执行操作。

全部级联

对所有相关实体记录执行操作。

无级联

不执行任何操作。

取消文章链接

删除所有相关实体记录的查找字段的值。

限制删除

当存在相关记录时,阻止删除主要实体记录。

用户负责项的级联

对被主要实体记录的用户所负责的所有相关实体记录执行操作。

这些操作在关系内的应用方式可以使用下表中介绍的“行为类型”字段值进行分类或应用。

字段值

说明

所有操作都使用“全部级联”行为。

可自定义的父实体关系 列出使用父行为的所有可自定义的系统实体关系。

引用

分派共享取消共享重定父级使用“无级联”行为。

删除使用“移除链接”行为。

合并 使用“全部级联”行为。

引用,限制删除

引用相同,但删除使用“限制删除”行为。

可配置项的级联

可以为每个操作分派单个行为。 如果选择与其他任何“行为类型”类别匹配,则值将更改为该“行为类型”值。

对可以设置的行为的限制

在定义实体关系时,应当记住一些限制。

  • 在有级联的相关系统实体的关系中,自定义实体不能为主要实体。 这表示在主要自定义实体和相关系统实体间不能与设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任何操作具有关系。

  • 如果新关系中的相关实体已作为其他关系(该其他关系具有设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任意操作)中的相关实体而存在,则任何新关系都不能具有设置为“全部级联”、“可用项的级联”或“用户负责项的级联”的任意操作。 这将防止创建具有多个父级的关系。

映射实体字段

您可以在具有实体关系的实体之间映射属性。 这样就可以为在另一条记录的上下文中创建的记录设置默认值。 假设您要为属于特定客户的员工的某个人添加一个新的联系人记录。 您可以通过两种方式完成此事:

您可以导航到“销售”>“联系人”,然后从头开始创建新的联系人记录。 但是,随后您需要设置上级单位,并输入可能与上级单位相同的多个信息项(如地址和电话信息)。 这可能会很耗时间,并会增加出错的机会。

最简单的方法是从客户实体入手,然后使用窗体上的“联系人”子网格,单击“+”来添加联系人。 它将先指引您查找现有的相关联系人,因此不会无意中创建重复的记录。 如果没有找到现有记录,则可以单击“新建”,创建一个新的联系人记录。 区别在于,客户记录中的有些数据项将会复制到新联系人窗体中来设置可在保存前编辑的某些默认值。 这样可以在输入数据时节省大量时间,并有助于减少错误。

默认实体和属性映射 显示为 Microsoft Dynamics 365 设置的所有默认映射。

备注

这些映射不会应用于使用工作流或对话流程创建的相关记录。 它们不会自动应用于使用代码创建的新记录,但开发人员可以使用一条名为 MSDN:InitializeFromRequest 的特殊消息,使用可用映射来创建新记录。

这些映射仅在保存记录之前设置记录的默认值。 用户可以在保存之前编辑值。 传输的数据是该时间点的数据。 没有经过同步。 主要实体记录中的信息发生变化时,创建主要实体时传输的相关实体记录数据不会改变。

根据列表创建新记录时设置的默认值实际上是在实体关系中定义的,但是会在关系用户界面中公开。 并非每个 1:N 实体关系都有它们。 在查看某个实体的 1:N(或 N:1)实体实体列表时,可以按类型筛选显示的关系。 您可以选择“全部”、“自定义”、“可自定义”或“可映射”。 “可映射”实体关系提供的访问权限允许映射实体字段。

下列规则显示了可以映射的数据种类。

  • 两个字段必须属于同一类型,而且必须采用相同的格式。

  • 目标字段的长度必须等于或大于源字段的长度。

  • 目标字段不能已映射到其他字段。

  • 源字段必须在表单上可见。

  • 目标字段必须是一个可供用户在其中输入数据的字段。

  • 如果字段是选项集,则每个选项的整数值应完全相同。

  • 不能映射地址 ID 值。

备注

如果需要映射选项集字段,建议您将两个字段都配置为使用相同的全局选项集。 否则,可能难以手动让两个单独的选项集保持同步。 如果每个选项的整数值未正确映射,则可能是数据中出现了问题。详细信息:创建和编辑全局选项集

创建或编辑字段之间的映射

  1. 转到“设置”>“自定义”。

  2. 单击“自定义系统”。

  3. 在“组件”下,展开“实体”,然后展开所需实体。

  4. 单击“1:N 关系”或“N:1 关系”。

  5. 在主窗格中的“ 类型”列表中,选择“可映射”。

  6. 选择可映射关系。 然后在操作工具栏上单击“操作”,再单击“编辑”。

  7. 在“相关”下,单击“映射”。

  8. 对于每个新映射,在“操作”工作栏上单击“新建”。

  9. 在“ 创建字段映射”对话框中,从“源实体字段”中选择源字段。 从“目标实体字段”中选择目标字段。

  10. 单击“确定”。

  11. 单击“保存并关闭”以关闭“关系”表单。

  12. 完成自定义后,发布自定义项

备注

  • 在发布自定义项后,这些映射将可供所有用户使用。 如果在发布自定义项之前,重新设置了 Internet Information Services (IIS),则这些映射将对所有用户可用,即使其他自定义项不可用也是如此。

  • 如果映射到未在表单中显示的字段或从其进行映射,则在将该字段添加到表单前,映射不会完成。

自动生成字段映射

您还可以自动生成映射,但在对系统实体执行此操作时,应小心从事。 请在创建自定义实体并要使用映射时使用此选项。 在查看映射列表时,在“更多操作”菜单中选择“生成映射”。 这会删除所有现有的映射,并代这以建议的映射;这些建议的映射基于具有类似名称和数据类型的字段。 如果对系统实体使用此方法,则可能会丢失一些应有的映射。 对于自定义实体,这有助于节省时间,因为您可以更轻松地删除您不需要的任何映射,并可添加生成映射操作不会创建的其他任何映射。

创建和编辑 N:N(多对多)关系

1:N 实体关系确立记录之间的层次结构。 对于 N:N(多对多)关系,没有明确的层次结构。 没有要配置的查找字段或行为。 使用 N:N 关系创建的记录可以视为对等项,关系是互惠的。

对于 N:N 关系,会创建一个名炎 Relationship(或 Intersect)实体的特殊实体。 此实体与每个相关实体都有关系,并且仅存储定义关系的必要值。 不能向关系实体添加自定义字段。

创建 N:N 关系的过程基本上就是选择两个要参与到关系中的实体,然后为每个实体定义相应列表在每个实体的窗体的导航窗格中的提供方式。 这些选项与用于 1:N 实体关系中的主要实体的选项相同。详细信息:主要实体的导航窗格项

并非所有实体可用于 N:N 关系。 如果“新建多对多关系”按钮未出现,则无法使用此实体创建新的 N:N 关系。 如果您使用元数据浏览器,则可筛选将 CanBeInManyToMany 值设置为 true 实体。详细信息:使用元数据浏览器

创建或编辑实体之间的 N-N 关系

  1. 转到“设置”>“自定义”。

  2. 单击“自定义系统”。

  3. 在“组件”下,展开“实体”,然后展开工作时所需实体。

  4. 单击“N:N 关系”。

  5. 若要编辑或查看现有关系的详细信息,请选择关系,然后在“操作”工具栏上单击“操作”,然后单击单击“编辑”。

    - 或 -

    若要添加新的关系,请单击“新建多对多关系”。

    重要

    如果“新建多对多关系”没有出现在“操作”工具栏上,则不可以为实体创建新的 N:N 关系。

  6. 对于新关系,可在“当前实体”部分的“显示选项”列表中,选择以下选项之一:

    • 不显示:其他实体将不显示当前实体的关联视图。

    • 使用自定义标签:该标签将用于为其他实体创建的关联视图。 请务必在“自定义标签”字段中输入相应的值。

    • 使用复数名称:这将为关联视图使用当前实体的复数名称。

    备注

    当选择了“使用实体复数名称”或“使用自定义标签”选项时,可以从“显示区域”字段中选择,以指定关系标签在表单中的显示位置。 还可以指定“显示顺序”,以控制标签在所选显示区域中的位置。

    重要

    与更新实体关联的导航模式形式明显不同于没有被更新的实体。 尽管定义显示区域和显示顺序的方法是常见的,您还是要确保在建立实体关系时了解各种导航范例。

  7. 在“其他实体”节中,从“实体名称”列表中选择其他实体。

    备注

    当您指定实体名称时,将为“关系定义”中的“名称”和“关系实体名称”字段设置默认值。 如果在保存前更改“实体名称”值,这些名称将不会更改,因此在保存之前请确保这些名称是有意义的。

  8. 在“关系定义”部分,确认“名称”和“关系实体名称”。

    这些值在 N:N 关系中必须是唯一的。

  9. 单击“保存并关闭”以关闭“N:N 关系”表单。

  10. 完成自定义后,发布自定义项:

    • 若要只发布当前编辑的组件的自定义项,请在“主页”选项卡上的“保存”组中,单击“发布”。

    • 若要同时发布所有未发布组件的自定义项,请单击“发布所有自定义项”。

    备注

    在更改用户界面元素或执行实体的窗体脚本后,必须发布相应更改才能应用这些更改。 将立即应用更改 Microsoft Dynamics 365 数据架构的任何自定义项(例如自定义实体、关系或字段)。

    安装解决方案或发布自定义项会干扰常规的系统操作。 我们建议您以对用户造成的干扰最少为宗旨,合理安排解决方案导入时间。

设置关系的托管属性

托管属性 仅适用于以下情况:字段包括在某个托管解决方案中,并将该解决方案导入到另一个组织。 利用这些设置,解决方案开发人员可以对他们希望允许安装托管解决方案的人在自定义某个实体关系时要拥有的自定义级别有一定的控制。 若要设置关系的托管属性,请单击菜单栏上的“托管属性”按钮。

对于关系,唯一的托管属性是“可以自定义”。 这一个设置控制可对实体关系做出的所有更改。

另请参阅

创建和编辑元数据
创建和编辑实体
创建和编辑字段
创建和编辑全局选项集
可自定义的父实体关系
默认实体和属性映射

© 2017 Microsoft。 保留所有权利。 版权