定义实体的备用键

 

发布日期: 2017年1月

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

所有 Microsoft Dynamics 365 记录都有定义为 GUID 的唯一标识符。 这些是每个实体的主键。 在需要与外部数据存储集成时,您或许能够添加列到外部数据库表中,以包含对 Dynamics 365 中唯一标识符的引用。 这让您拥有对 Dynamics 365 记录的链接的本地引用。 不过,有时您无法修改外部数据库。 使用备用键,您现在可以在 Dynamics 365 实体中定义一个属性,和被用于外部数据存储的唯一标识符(或列组合)相对应。 此备用键可用于唯一标识位于 Dynamics 365(而不是主键)中的记录。 您必须能够定义哪些属性表示您的记录的唯一标识。 一旦确定对实体是唯一的属性,则可以通过自定义用户界面 (UI) 或在代码中声明他们作为备用键。 本主题提供有关在数据模型中定义备用键的信息。

本主题内容

创建备用键

检索和删除备用键

监视备用键的索引创建

创建备用键

您可以通过编程方式或使用自定义工具创建备用键。 有关使用自定义工具的详细信息,请参阅定义引用 CRM 记录的备用键

若要通过编程方式定义备用键,您必须首先创建 EntityKeyMetadata 类型的对象。 此类包含键属性。 一旦设置键属性,可以使用 CreateEntityKeyRequest 消息创建实体的密钥。 此消息将实体名称和 EntityKeyMetadata 值作为输入值创建键。

当创建备用键时您应了解以下约束:

  • 键定义的有效属性

    仅以下类型的属性可以包含在备用键定义中:

    属性类型

    显示名称

    DecimalAttributeMetadata

    十进制数

    IntegerAttributeMetadata

    整数

    StringAttributeMetadata

    一行文本

  • 有效的键大小

    当创建键时,系统会验证该键是否受平台支持,包括键总大小不能违反 基于 SQL 索引约束,如每个键 900 个字节和 16 列。 如果键大小不满足约束,将显示一条错误消息。

  • 实体备用键定义的最大数

    Dynamics 365 实例中的实体最多可以有 5 个备用键定义。

检索和删除备用键

如果需要检索或删除备用键,您可以使用自定义 UI 执行此操作,不需要编写任何代码。 但是 SDK 提供以下两条消息以用编程方式获取和删除备用建。

消息请求类

说明

RetrieveEntityKeyRequest

检索指定的备用键。

DeleteEntityKeyRequest

删除指定的备用键。

若要检索一个实体的所有键,请使用 EntityMetadata 类的新 Keys 属性。 它为实体获取键的数组。

监视备用键的索引创建

备用键使用数据库索引强制唯一性并优化查找性能。 如果表中存在许多现有记录,则创建索引的过程可能很长。 您可以将索引创建作为后台进程进行,从而提高自定义 UI 和解决方案导入的响应能力。AsyncJob 属性引用执行索引创建的异步作业。EntityKeyIndexStatus 属性指定键状态为其索引创建作业进度。 状态可以是以下任意一项:

  • 挂起

  • 正在进行

  • 可用

  • 失败

使用 API 创建备用键时,如果索引创建失败,可以使用 ReactivateEntityKeyRequest 消息钻取有关失败原因的详细信息,更正问题,重新激活键请求。

如果备用键被删除,而索引创建作业仍处于等待状态或正在创建过程中,作业将被取消且索引将被删除。

另请参阅

使用备用键创建记录
使用更改跟踪将数据与外部系统同步
使用 Upsert 插入或更新记录

Microsoft Dynamics 365

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