C# - 如果存在于CRM中,则插入或更新

时间:2017-08-23 04:54:59

标签: c# dynamics-crm dynamics-crm-online dynamics-crm-2015

从c#在CRM中执行upsert操作的最佳方法是什么?

我是否需要每次都获取记录以在插入新记录之前检查它是否存在或者是否有更好的方法来执行此操作?和性能影响?

如果有人有任何例子吗?

1 个答案:

答案 0 :(得分:5)

Boom..Boom。 UpsertRequest

    //use alternate key for product
    Entity productToCreate = new Entity("sample_product", "sample_productcode", productCode);

    productToCreate["sample_name"] = productName;
    productToCreate["sample_category"] = productCategory;
    productToCreate["sample_make"] = productMake;
    UpsertRequest request = new UpsertRequest()
    {
        Target = productToCreate
    };

        // Execute UpsertRequest and obtain UpsertResponse. 
        UpsertResponse response = (UpsertResponse)_serviceProxy.Execute(request);
        if (response.RecordCreated)
            Console.WriteLine("New record {0} is created!", productName);
        else
            Console.WriteLine("Existing record {0} is updated!", productName);
  

对于Microsoft Dynamics CRM Online组织,仅当您的组织已更新到Dynamics CRM Online 2015 Update 1时,此功能才可用。此功能不适用于Dynamics CRM(内部部署)。

如果您使用的是内部版本或旧版本,则必须调用Retrieve以在创建/更新调用之前验证记录是否存在。