IOrganizationService更新实体的正确方法

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

那么,我的问题是:

我应该使用:

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

    如果答案是“它取决于”,那么哪种方法需要保证?

谢谢

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

主要区别在于可以使用ExecuteMultipleRequest批量处理UpdateRequest

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

 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; } 

您无法使用“ Create和“ Update方法执行此操作。

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

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