Dynamics crm 2011 在CRM 2011中,如何创建记录并将其关联到同一ExecuteMultipleRequest中

Dynamics crm 2011 在CRM 2011中,如何创建记录并将其关联到同一ExecuteMultipleRequest中,dynamics-crm-2011,dynamics-crm,crm,Dynamics Crm 2011,Dynamics Crm,Crm,我正在努力找到一种方法来使用ExecuteMultipleRequest创建一个记录,同时将其与其他记录关联起来。到目前为止,我只成功地首先创建了记录,然后在另一个请求中设置了关联 在这段代码中,它抛出了一个异常,它需要一个目标(之前需要提交该目标才能创建记录并获取ID) 使用ExecuteMultipleRequest实现的唯一方法是在创建记录之前指定新记录的Id: Guid accountId = new Guid("c85dca5d-6520-4436-a5f6-178b633af819"

我正在努力找到一种方法来使用ExecuteMultipleRequest创建一个记录,同时将其与其他记录关联起来。到目前为止,我只成功地首先创建了记录,然后在另一个请求中设置了关联

在这段代码中,它抛出了一个异常,它需要一个目标(之前需要提交该目标才能创建记录并获取ID)


使用
ExecuteMultipleRequest
实现的唯一方法是在创建记录之前指定新记录的
Id

Guid accountId = new Guid("c85dca5d-6520-4436-a5f6-178b633af819");

Entity myAccount = new Entity("account");
myAccount["name"] = "TEST ACCOUNT";
entity.Id = accountId;
// ...
EntityReferenceCollection relatedEntities = new EntityReferenceCollection();
relatedEntities.Add(new EntityReference("account", accountId));

指定允许但不建议使用的
Id。

您可以做的另一件事是在ExecuteMultipleRequest中提交记录,然后在ExecuteMultipleResponse中获取GUID,然后您可以将该GUID与创建的记录一起使用以执行AssociateRequest

例如:

ExecuteMultipleResponse response = (ExecuteMultipleResponse)service.Execute(updateCRM);

List<Entity> addedRecordList = new List<Entity>();

foreach (ExecuteMultipleResponseItem item in response.Responses)
{
    Guid responseReturnedGuid = (Guid)item.Response.Results.Values.FirstOrDefault(x => x is Guid);
    if (responseReturnedGuid != Guid.Empty || responseReturnedGuid != null)
    {
        Entity addedRecord = (Entity)updateCRM.Requests[item.RequestIndex].Parameters.Values.FirstOrDefault(x => x is Entity);
        addedRecord.Id = responseReturnedGuid;
        addedRecordList.Add(addedRecord);
    }
}
ExecuteMultipleResponse=(ExecuteMultipleResponse)服务;
List addedRecordList=新列表();
foreach(response.Responses中的ExecuteMultipleResponseItem项)
{
Guid responseReturnedGuid=(Guid)item.Response.Results.Values.FirstOrDefault(x=>x是Guid);
if(responseReturnedGuid!=Guid.Empty | | responseReturnedGuid!=null)
{
实体addedRecord=(实体)updateCRM.Requests[item.RequestIndex].Parameters.Values.FirstOrDefault(x=>x为实体);
addedRecord.Id=响应返回的UID;
addedRecordList.Add(addedRecord);
}
}

让平台创建顺序GUI可以提高SQL性能:这是不幸的。我真的尽可能经常地使用ExecuteMultipleRequest来提高性能。听起来我只是在用一些短期表现来换取长期表现问题。谢谢
ExecuteMultipleResponse response = (ExecuteMultipleResponse)service.Execute(updateCRM);

List<Entity> addedRecordList = new List<Entity>();

foreach (ExecuteMultipleResponseItem item in response.Responses)
{
    Guid responseReturnedGuid = (Guid)item.Response.Results.Values.FirstOrDefault(x => x is Guid);
    if (responseReturnedGuid != Guid.Empty || responseReturnedGuid != null)
    {
        Entity addedRecord = (Entity)updateCRM.Requests[item.RequestIndex].Parameters.Values.FirstOrDefault(x => x is Entity);
        addedRecord.Id = responseReturnedGuid;
        addedRecordList.Add(addedRecord);
    }
}