ChangeOperationResponse Classe

Définition

Résultats retournés après un appel à SaveChanges() lors de l'énumération des réponses d'opération retournées par la classe DataServiceResponse.

public ref class ChangeOperationResponse sealed : System::Data::Services::Client::OperationResponse
public sealed class ChangeOperationResponse : System.Data.Services.Client.OperationResponse
type ChangeOperationResponse = class
    inherit OperationResponse
Public NotInheritable Class ChangeOperationResponse
Inherits OperationResponse
Héritage
ChangeOperationResponse

Exemples

Le code suivant montre comment traiter les résultats d’un appel à SaveChanges.

DataServiceContext service = new DataServiceContext(new Uri("http://myserviceroot"));  

// Do insert, update, delete, or attach operations.  

DataServiceResponse dsr;  

try  
{  
    dsr = service.SaveChanges(SaveChangesOptions.Batch);    
   // Or service.SaveChanges(SaveChangesOptions.ContinueOnError);   
   //Or service.SaveChanges();  
   // If there are no errors during save changes, process the results:  

    if (dsr.IsBatchResponse)  
    {  
           /*inspect HTTP artifacts associated with the entire batch:  
                             dsr.BatchHeaders, dsr.BatchStatusCode*/ }  

    foreach (ChangeOperationResponse cor in dsr)  
    {  

            if (cor.Descriptor is EntityDescriptor)  
            {  
                EntityDescriptor ed = (EntityDescriptor)cor.Descriptor;  
                // This should be the case if  
                // SaveChanges did not throw an exception.    

                // After an entity is processed by SaveChanges,  
                // it is always moved to the unchanged state.  
                System.Diagnostics.Debug.Assert(  
                           ed.State == EntityStates.Unchanged);    
                // This shows that the state should be unchanged if  
                // the result is success.  

                //process the entity in the response payload: ed.Entity  
            }  
            else if (cor.Descriptor is LinkDescriptor)  
            {  
                LinkDescriptor ld = (LinkDescriptor)cor.Descriptor;  
               // This should be the case if SaveChanges did not throw an exception.  

               // After an entity is processed by SaveChanges it  
               // is always moved to the unchanged state.  
                System.Diagnostics.Debug.Assert(  
                            ld.State == EntityStates.Unchanged);    
                // The state should be unchanged if the result is success.  

                //process the link in the response payload: ld.Source,  
                // ld.SourceProperty, or ld.Target.  
            }  
     }  

}  
catch (DataServiceSaveException se)  
{  
    // Error while saving changes  
    dsr = se.Response;  

    if (dsr.IsBatchResponse)   
    {   
        /*inspect HTTP artifacts associated with the entire batch:  
             dsr.BatchHeaders, dsr.BatchStatusCode*/   
}      
}  

    foreach (ChangeOperationResponse cor in dsr)  
    {  
        if (cor.Error != null)  
        {  
            //process error  
        }  
        else  
        {  
            // same success case processing as in the loop over DSRs results in   
            // the try block. You could put that processing in a method   
            // and call it from here.      
        }  
    }  

}  

 catch(Exception)  
 {  
    // Error while saving changes, but not thrown by the client library.  

    // Process ArgumentException, InvalidOperationException, or similar.  
}  
}  

Remarques

Les objets ChangeOperationResponse ne sont pas destinés à être construits directement par un utilisateur de cette bibliothèque. À la place, les références sont retournées lors de l'énumération des réponses d'opération retournées via l'énumérateur pour la classe DataServiceResponse.

SaveChanges soumet au service de données les modifications en attente collectées par le DataServiceContext depuis le dernier appel de SaveChanges. Les modifications sont ajoutées au contexte en appelant AddObject, AddLink, DeleteObject, DeleteLink, Detach, DetachLink, et les méthodes similaires.

SaveChanges retourne un DataServiceResponse qui représente la réponse à toutes les opérations envoyées au service de données. L'objet DataServiceResponse inclut une séquence d'objets ChangeOperationResponse qui, à leur tour, contiennent une séquence d'instances EntityDescriptor ou LinkDescriptor représentant les modifications qui ont été tentées ou rendues persistantes.

Propriétés

Descriptor

Obtient le EntityDescriptor ou le LinkDescriptor modifié par une opération de modification.

Error

Obtient l'erreur résultant de l'opération.

(Hérité de OperationResponse)
Headers

Une fois substituée dans une classe dérivée, contient les en-têtes de réponse HTTP associés à une opération unique.

(Hérité de OperationResponse)
StatusCode

Une fois substituée dans une classe dérivée, obtient ou définit le code de réponse HTTP associé à une opération unique.

(Hérité de OperationResponse)

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à