从 ExecuteMultipleResponse 方法中检索失败的实体

Retrieve failed entities from ExecuteMultipleResponse method

我正在使用执行多重响应 class 将 Upsert 的实体集合传递到 Dynamics CRM,我想知道如何将失败的实体名称添加到集合,然后使用异常处理这些实体中的每一个。

假设您创建 ExecuteMultipleRequest 像这样的东西:

var entityCollection; // your EntityCollection
var requests = new ExecuteMultipleRequest();

foreach (var entity in entityCollection.Entities) {
    var upsertRequest = new UpsertRequest { Target = entity };
    requests.Requests.Add(upsertRequest);
}

您应该能够执行请求,遍历 responses 并为每个确定是否发生错误:

var responses = service.Execute(requests);
var errors = new List<Entity>();

foreach (var response in responses.Responses) {
    if (response.Fault != null) {
        var entity = entityCollection[response.RequestIndex];
        errors.Add(entity);
    }
}

response.RequestIndex用于通过匹配它们的索引来访问响应的对应请求。

responses.Responses 包含 ExecuteMultipleResponseItem 的集合。可在 here.

中找到有关其属性的文档