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

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

在 CRM 中从 C# 执行更新插入操作的最佳方法是什么。

我是否需要每次都获取记录以在插入新记录之前检查它是否存在,或者是否有更好的方法来做到这一点?以及性能效果?

谁有这方面的例子?

最佳答案

轰……轰。 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);

For Microsoft Dynamics CRM Online organizations, this feature is available only if your organization has updated to Dynamics CRM Online 2015 Update 1. This feature is not available for Dynamics CRM (on-premises).

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

关于C# - 如果 CRM 中存在则插入或更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45830889/

相关文章:

c# - 如何将 Outlook 电子邮件拖放到 WPF 应用程序中并保存

c# - 从字符串中删除除字母以外的所有内容

python - 如何使用 Python 连接到 Microsoft Dynamics CRM 服务器?

javascript - 以编程方式检查安装了哪个版本?

dynamics-crm - 注册为 "post operation"的 Dynamics CRM 插件是在数据库事务内部还是外部运行?

c# - 组织者事件方名称为空

http - Crm Web Api 展开实体的 304 响应无效

c# - 将 float 转换为 byte[] 以通过命名管道发送 (C++)

c# - DataTable 覆盖上一行

email - 如何使用crm通过简单的电子邮件地址发送电子邮件?