使用备用键创建记录

 

发布日期: 2017年1月

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

现在您可以使用备用键创建 EntityEntityReference 类的实例。 本主题讨论使用模式以及在使用备用键时可能引发的异常。 若要了解如何定义实体的备用键,请参阅定义实体的备用键

本主题内容

使用备用键创建实体

使用备用键创建 EntityReference

到消息的替代输入

使用备用键时出现的异常

使用备用键创建实体

您现在可以使用新构造函数在单次调用中使用主 ID 或单个 KeyAttribute 创建 Entity

public Entity (string logicalName, Guid id) {…}  
public Entity (string logicalName, string keyName, object keyValue) {…}
public Entity (string logicalName, KeyAttributeCollection keyAttributes) {…}  

用于更新操作的有效 Entity 包含实体的逻辑名称和以下之一:

  • ID 值(主键 GUID 值)(或)

  • 具有与为实体定义的键匹配的有效属性集的 KeyAttributeCollection

使用备用键创建 EntityReference

您还可以使用新构造函数在单次调用中不使用主 ID、使用单个 KeyAttribute 创建 EntityReference

public EntityReference(string logicalName, Guid id) {…}  
public EntityReference(string logicalName, string keyName, object keyValue) {…}  
public EntityReference(string logicalName, KeyAttributeCollection keyAttributeCollection) {…}  

有效的 EntityReference 包括实体的逻辑名称以及以下之一:

  • ID 值(主键 GUID 值)或

  • 具有与为实体定义的键匹配的有效属性集的 KeyAttributeCollection 集合。

到消息的替代输入

在将实体传递到 CreateRequestUpdateRequest 时,使用 EntityReference 为查找属性提供的值现在可以使用具有在 KeyAttributes 中定义的备用键的 EntityReference 来指定相关记录。  这些将在处理消息前解析到基于主 ID 的实体引用并由其替换。

使用备用键时出现的异常

在使用备用键时,您必须了解以下条件和可能出现的异常:

  • 如果提供主 ID,请使用主 ID。 如果未提供,将检查 KeyAttributeCollection。 如果未提供 KeyAttributeCollection,将引发错误。

  • 如果提供的 KeyAttributeCollection 包括实体主键的一个属性,且该值有效,将使用提供的值填充 EntityEntityReference 的 ID 属性。

  • 如果提供键属性,系统将尝试匹配提供的属性集和为 Entity 定义的键。 如果未找到匹配,将引发错误。 如果找到匹配,它将验证为这些属性提供的值。 如果有效,将检索与提供键值匹配的记录的 ID,并使用此值填充 EntityEntityReference 的 ID 值。

  • 如果您指定未定义为唯一键的属性集,将引发一条错误,指示需要使用唯一键属性。

另请参阅

定义实体的备用键
使用更改跟踪将数据与外部系统同步
使用 Upsert 插入或更新记录

Microsoft Dynamics 365

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