我正在使用Execute Multiple Response类将Upsert的实体集合传递到Dynamics CRM中,我想知道如何将失败的实体名称添加到集合中,然后对每个实体使用异常处理。 / p>
答案 0 :(得分:3)
假设您创建了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。