gpt4 book ai didi

c# - CRM 中的 RetrieveRequest 和 IOrganizationService.Retrieve 有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:44 25 4
gpt4 key购买 nike

我是使用 C# 进行 CRM 工作流步骤开发的新手。我需要知道 IOrganizationService 中的 RetrieveRequestRetrieve 之间的主要区别是什么。什么时候必须使用哪一个?是否有任何示例说明如何使用此对象以执行者的方式运行?

最佳答案

在大多数情况下,Retrieve 方法就足够了。

不过,RetrieveRequest 添加了一个有趣的功能:它提供了一次性查询与检索到的对象关联的数据的选项。

假设您需要发票数据及其发票产品记录。一种选择是创建一个 QueryExpression 并加入 invoice 实体和 invoicedetail 实体的结果。这将产生一个可能很大的表。

使用 RetrieveRequest,您可以在一个请求中查询与检索到的实体关联的记录。

一个例子:

private readonly IOrganizationService _service;

public Entity GetFullInvoice(Guid invoiceId)
{
var request = new RetrieveRequest
{
ColumnSet = new ColumnSet(allColumns: true),
Target = new EntityReference("invoice", invoiceId),
RelatedEntitiesQuery = new RelationshipQueryCollection()
};

var relation = new Relationship("invoice_details");
relation.PrimaryEntityRole = EntityRole.Referenced;

var invoiceDetailQuery = new QueryExpression("invoicedetail");
invoiceDetailQuery.ColumnSet = new ColumnSet(allColumns: true);
invoiceDetailQuery.Criteria.AddCondition("invoiceid", ConditionOperator.Equal, invoiceId);

var result = (RetrieveResponse)_service.Execute(request);

return result.Entity;
}

GetFullInvoice 返回的Entity 对象有一个RelatedEntities 属性,其中包含与发票相关的实体集合。

可以将多个查询添加到 RetrieveRequest,因此也可以一次性检索关联的事件等。

关于c# - CRM 中的 RetrieveRequest 和 IOrganizationService.Retrieve 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33327565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com