Delete records using Execute Multiple Request



public static void DeleteRecords(IOrganizationService service,EntityCollection results)
{
ExecuteMultipleRequest multipleRequest = BulkDeleteRequest();
foreach (var entityRef in results.Entities)
{
DeleteRequest deleteRequest = new DeleteRequest()
{
Target = new EntityReference(entityRef.LogicalName, entityRef.Id)
};
multipleRequest.Requests.Add(deleteRequest);
if (multipleRequest.Requests.Count == 1000)
{
BulkDeleteResponse(service, multipleRequest);
multipleRequest = BulkDeleteRequest();
}
}
if (multipleRequest.Requests.Count <= 1000)
BulkDeleteResponse(service, multipleRequest);
}
public static ExecuteMultipleRequest BulkDeleteRequest()
{
var multipleRequest = new ExecuteMultipleRequest()
{
// Assign settings that define execution behavior: continue on error, return responses.
Settings = new ExecuteMultipleSettings()
{
ContinueOnError = false,
ReturnResponses = true
},
// Create an empty organization request collection.
Requests = new OrganizationRequestCollection()
};
return multipleRequest;
// Execute all the requests in the request collection using a single web method call.
}
public static void BulkDeleteResponse(IOrganizationService service, ExecuteMultipleRequest multipleRequest)
{
ExecuteMultipleResponse multipleResponse = (ExecuteMultipleResponse)service.Execute(multipleRequest);
}