[英]How to insert money data type from SQL server into currency field in crm using c# (latebound)
[英]How to Sync data from SQL database field type(nvarchar) to Dynamics CRM field type (Lookup)
我正在嘗試將數據從 SQL Server 同步到 Dynamics CRM。
我在 C# 中創建了一個解決方案/項目。 在同步CRM的一個賬戶實體的地方,所有的細節,比如姓名,賬號,發貨日期,電話號碼所有這些細節都成功同步,因為表單SQL,數據類型是nvarchar
或int
,在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.