簡體   English   中英

如何將數據從 SQL 數據庫字段類型(nvarchar)同步到 Dynamics CRM 字段類型(查找)

[英]How to Sync data from SQL database field type(nvarchar) to Dynamics CRM field type (Lookup)

我正在嘗試將數據從 SQL Server 同步到 Dynamics CRM。

我在 C# 中創建了一個解決方案/項目。 在同步CRM的一個賬戶實體的地方,所有的細節,比如姓名,賬號,發貨日期,電話號碼所有這些細節都成功同步,因為表單SQL,數據類型是nvarcharint ,在CRM中它是一行文本。

但是,當我從nvarchar到 CRM 的查找字段執行相同的同步時,它不起作用並且發生了異常。

這里,account 是 CRM 中實體的名稱,SalesContact 是 SQL 中的字段名稱,數據類型是nvarchar ,ppg_salescontact 是 CRM 中的字段名稱,數據類型是查找。

  Entity enAccount = new Entity("account");

 if (!String.IsNullOrEmpty(drRowAccount["SalesContact"] + "")) { enAccount["ppg_salescontact"] = 
 SecurityElement.Escape(drRowAccount["SalesContact"].ToString().Trim()); }

異常:”消息:將屬性值轉換為屬性時出錯:屬性 [ppg_salescontact],實體 [account] 的屬性類型 [lookup] 的值類型為 [System.String]:[System.InvalidCastException:無法轉換類型為“System”的對象.String' 輸入'Microsoft.Xrm.Sdk.EntityReference'。"

請建議我可以為此做些什么。

您得到的例外說明了一切:您不能將類型為string的值分配給類型為EntityReference的字段。

因此,要根據該string獲取EntityReference ,您必須做的是獲取您的string值,並根據該值查詢 CRM 以獲取適當的 CRM 記錄。 具體來說,您需要查詢ppg_salescontact是要查找的 CRM 實體。

此查詢的結果將是派生自Entity的類型,然后您可以將其轉換為EntityReference (通過調用ToEntityReference() )。

例如,如果ppg_salescontact是 CRM Contact實體的查找,並且如果drRowAccount["SalesContact"]為您提供聯系人的全名,那么您可以按如下方式查詢(這是 LINQ 語法):

Contact contact = orgContext
   .ContactSet
   .Where(c => c.FullName == drRowAccount["SalesContact"])
   .FirstOrDefault();
EntityReference contactRef = contact?.ToEntityReference();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM