簡體   English   中英

使用 C# 更新 CRM 中的實體字段

[英]Update an Entity field in CRM using C#

我正在嘗試使用 C# 更新 CRM 中實體的字段值,但我不知道該怎么做。

以下是我當前的代碼:

var helper = new CRMConnection();
var service = helper.OpenConnection();

var entiyRef = new Entity("financialaid");
string fetchXML = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
                      <entity name='financialaid'>
                        <attribute name='financialaidid' />
                        <attribute name='emailcontent' />
                      </entity>
                    </fetch>";

var retrieved = service.RetrieveMultiple(new FetchExpression(fetchXML));
if (retrieved != null && retrieved.Entities.Count > 0){
    for (var k = 0; k < retrieved .Entities.Count; i++){
        var emailContent = retrieved .Entities[i].GetAttributeValue<string>("emailcontent");
        entiyRef["emailcontent"] = "test";
        service.Update(entiyRef);
    }
}

上面的代碼返回了超過5000條記錄,我想它與我在 CRM 中的每條記錄相關聯。 但我只是想更新實體中的獨立字段。

之后,它遇到以下錯誤並退出。

拋出異常:Microsoft.Xrm.Sdk.dll 中的“System.ServiceModel.FaultException`1”

我可以知道如何使用 FetchXML 正確更新 CRM 中的字段嗎?

attributeId = 0AB038CE-E57E-EA11-A811-000D3AA3E77C
entityId = b6abe6f6-a876-4a80-87d6-2f1b179d437f

第一個問題是您將entityRef實例化為new Entity("financialaid")但您從未分配該 object 的Id屬性,因此service.Update(entityRef)調用將嘗試更新具有 Financialaidid 的financialaidid = Guid.Empty援助實體的記錄financialaidid = Guid.Empty ,它不應該存在。

使用一些 Linq 表達式或簡單的 foreach 可以大大簡化結果的循環。 循環也沒有真正意義,因為您每次都在更新相同的記錄(id 為空的金融援助記錄)。

如果您要完成的是更新實體財務援助的每條記錄並將 emailcontent 屬性設置為“測試”,請將其放入循環中:

var entityRef = new Entity(retrieved.Entities.LogicalName, retrieved.Entities.Id);
entityRef["emailcontent"] = "test";
service.Update(entityRef);

請注意,FetchXML 只是一種查詢語言,您不能使用 FetchXML 來更新記錄。 將其視為 SQL 的 select 語句。

最后,如果您只想批量更新所有財務援助記錄以設置字段的值,我建議您使用現有工具而不是編寫一次性應用程序來完成。 在這種情況下, XrmToolBox中的Bulk Data Updater工具可以完成這項工作。

您在錯誤的實體中創建 emailContent 字段。 如果您在該實體中有超過 5,000 條記錄,則該實體可能會存儲交易數據。

我建議您使用具有鍵字段和值字段的自定義配置實體(如果有,則創建配置實體)。

為鍵指定一個唯一名稱,然后將 html 表存儲到該值字段中。

通過鍵檢索該記錄,然后您可以從值字段更新/讀取 html 表。

暫無
暫無

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

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