使用备用键创建记录
发布日期: 2016年11月
适用于: Dynamics CRM 2015
现在您可以使用备用键创建 Entity 和 EntityReference 类的实例。 本主题讨论使用模式以及在使用备用键时可能引发的异常。 若要了解如何定义实体的备用键,请参阅定义实体的备用键。
备注
对于 Microsoft Dynamics CRM Online 组织,只有当您的组织更新到 Dynamics CRM Online 2015 更新 1 时才可以使用此功能。 此功能不适用于 Dynamics CRM(本地)。
本主题内容
使用备用键创建实体
使用备用键创建 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 集合。
到消息的替代输入
在将实体传递到 CreateRequest 和 UpdateRequest 时,使用 EntityReference 为查找属性提供的值现在可以使用具有在 KeyAttributes 中定义的备用键的 EntityReference 来指定相关记录。 这些将在处理消息前解析到基于主 ID 的实体引用并由其替换。
使用备用键时出现的异常
在使用备用键时,您必须了解以下条件和可能出现的异常:
如果提供主 ID,请使用主 ID。 如果未提供,将检查 KeyAttributeCollection。 如果未提供 KeyAttributeCollection,将引发错误。
如果提供的 KeyAttributeCollection 包括实体主键的一个属性,且该值有效,将使用提供的值填充 Entity 或 EntityReference 的 ID 属性。
如果提供键属性,系统将尝试匹配提供的属性集和为 Entity 定义的键。 如果未找到匹配,将引发错误。 如果找到匹配,它将验证为这些属性提供的值。 如果有效,将检索与提供键值匹配的记录的 ID,并使用此值填充 Entity 或 EntityReference 的 ID 值。
如果您指定未定义为唯一键的属性集,将引发一条错误,指示需要使用唯一键属性。
另请参阅
定义实体的备用键
使用更改跟踪将数据与外部系统同步
使用 Upsert 插入或更新记录
© 2017 Microsoft。 保留所有权利。 版权