IOrganizationService更新实体的正确方法

时间:2015-01-30 22:28:02

标签: c# dynamics-crm-2011 dynamics-crm dynamics-crm-2013

我正在查看从C#中更新/检索实体的最佳方法。我已阅读过MSDN文档,但不确定使用哪种方法/何时使用这两种方法。

所以,我的问题:

我应该使用:

  • IOrganizationService.Update()并直接更新实体;或
  • IOrganization.Execute()并创建更新请求

    如果答案是'它取决于',哪种情况需要哪种方法?

由于

2 个答案:

答案 0 :(得分:4)

首先,UpdateRequest的Update和Execute都会产生相同的结果。

主要区别在于可以使用ExecuteMultipleRequest

批量处理UpdateRequest

答案 1 :(得分:1)

使用CreateRequest以及UpdateRequest,您可以切换重复检测,如下例所示:

public Guid CreateTest(Entity account, IOrganizationService service)
{
    var request = new CreateRequest { Target = account };
    request.Parameters.Add("SuppressDuplicateDetection", false);
    var response = service.Execute(request) as CreateResponse;
    return response.id;
}

您无法使用CreateUpdate方法执行此操作。

当然,您可以将Request个对象提供给ExecuteMultipleRequest,以限制到OrganizationService的往返次数。

我希望CreateUpdate方法效率稍高,但我怀疑它是否可以衡量。

相关问题