使用其他索引鍵建立記錄
發佈日期: 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 為查詢屬性提供的值現在可以使用 EntityReference 搭配 KeyAttributes 中定義的其他索引鍵指定相關記錄。 這些將會解析並取代為主 ID 為主的實體參考,在處理訊息之前。
使用其他索引鍵時的例外狀況
使用其他索引鍵時,您必須注意下列情況和可能的例外狀況:
使用主要 ID (如有提供)。 如果未提供,它將檢查 KeyAttributeCollection。 如果未提供 KeyAttributeCollection,它將擲回錯誤。
如果提供的 KeyAttributeCollection 包括的某一個屬性是實體的主索引鍵,而且值有效,它會以提供的值填入 Entity 或 EntityReference 的 ID 屬性。
如果提供主要屬性,系統會嘗試比對提供的這組屬性與針對 Entity 定義的索引鍵。 如果找不到相符項目,將會擲回錯誤。 如果找到相符項目,則會驗證為這些屬性提供的值。 如果有效,將會擷取符合所提供索引鍵值的記錄 ID,並以此值填入 Entity 或 EntityReference 的 ID 值。
如果您指定的屬性集未定義為唯一索引鍵,將會擲回錯誤,指出必須使用唯一的主要屬性。
另請參閱
定義實體的其他索引鍵
使用變更追蹤,同步處理資料與外部系統
使用 Upsert 插入或更新記錄
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權