2017-03-23 31 views

答えて

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です。

+1

レスポンスDaveに感謝します。フォローアップの質問のカップル。要求[response.RequestIndex]はExecuteMultipleRequestのインデックスです。エンティティをインデックスからどのように取得しますか?私のerrors.Add(エンティティ)は "オブジェクトから 'Microsoft.Xrm.Sdk.Entity'に変換できません。 –

+0

私の間違いは、エンティティを' ExecuteMultipleRequest.Requests'からではなく 'EntityCollection'から取得する必要があります。したがって、行は次のようになります。 'var entity = entityCollection [response.RequestIndex];' –

関連する問題