分享方式:


使用其他索引鍵建立記錄

 

發佈日期: 2016年11月

適用對象: Dynamics CRM 2015

您現在可以使用其他索引鍵建立 EntityEntityReference 類別的執行個體。 本主題討論使用其他索引鍵時的使用模式及可能擲回的例外狀況。 如要了解如何定義實體的其他索引鍵,請參閱定義實體的其他索引鍵

備註

如果是 Microsoft Dynamics CRM Online 組織,只有在組織已更新至 Dynamics CRM Online 2015 更新 1 時,才能使用此功能。 這項功能不適用於 Dynamics CRM (內部部署)。

本主題內容

使用其他索引鍵建立實體

使用其他索引鍵建立 EntityReference

訊息的替代輸入

使用其他索引鍵時的例外狀況

使用其他索引鍵建立實體

您現在可以使用新建構函式建立包含主要 ID 或在單一呼叫中包含單一 KeyAttributeEntity

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,或在單一呼叫中包含單一 KeyAttributeEntityReference

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 為查詢屬性提供的值現在可以使用 EntityReference 搭配 KeyAttributes 中定義的其他索引鍵指定相關記錄。  這些將會解析並取代為主 ID 為主的實體參考,在處理訊息之前。

使用其他索引鍵時的例外狀況

使用其他索引鍵時,您必須注意下列情況和可能的例外狀況:

  • 使用主要 ID (如有提供)。 如果未提供,它將檢查 KeyAttributeCollection。 如果未提供 KeyAttributeCollection,它將擲回錯誤。

  • 如果提供的 KeyAttributeCollection 包括的某一個屬性是實體的主索引鍵,而且值有效,它會以提供的值填入 EntityEntityReference 的 ID 屬性。

  • 如果提供主要屬性,系統會嘗試比對提供的這組屬性與針對 Entity 定義的索引鍵。 如果找不到相符項目,將會擲回錯誤。 如果找到相符項目,則會驗證為這些屬性提供的值。 如果有效,將會擷取符合所提供索引鍵值的記錄 ID,並以此值填入 EntityEntityReference 的 ID 值。

  • 如果您指定的屬性集未定義為唯一索引鍵,將會擲回錯誤,指出必須使用唯一的主要屬性。

另請參閱

定義實體的其他索引鍵
使用變更追蹤,同步處理資料與外部系統
使用 Upsert 插入或更新記錄

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權