Ler em inglês

Partilhar via


ChangeOperationResponse Classe

Definição

Os resultados retornados após uma chamada para SaveChanges() ao enumerar as respostas de operação retornadas pela classe DataServiceResponse.

public sealed class ChangeOperationResponse : System.Data.Services.Client.OperationResponse
Herança
ChangeOperationResponse

Exemplos

O código a seguir mostra como processar os resultados de uma chamada para 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.  
}  
}  

Comentários

ChangeOperationResponse os objetos não devem ser construídos diretamente por um usuário dessa biblioteca. Em vez disso, as referências são retornadas ao enumerar as respostas de operação retornadas por meio do enumerador na DataServiceResponse classe .

SaveChanges envia alterações pendentes para o serviço de dados coletado pelo DataServiceContext desde a última chamada para SaveChanges. As alterações são adicionadas ao contexto chamando AddObjectAddLink, , DeleteObject, DeleteLink, Detach, , DetachLinke métodos semelhantes.

SaveChanges retorna um DataServiceResponse que representa a resposta a todas as operações enviadas ao serviço de dados. O DataServiceResponse objeto inclui uma sequência de ChangeOperationResponse objetos que, por sua vez, contêm uma sequência de EntityDescriptor instâncias ou LinkDescriptor que representam as alterações que foram persistentes ou tentadas.

Propriedades

Descriptor

Obtém o EntityDescriptor ou LinkDescriptor modificados por uma operação de alteração.

Error

Obtém o erro gerado pela operação.

(Herdado de OperationResponse)
Headers

Quando substituído em uma classe derivada, contém os cabeçalhos de resposta HTTP associados a uma única operação.

(Herdado de OperationResponse)
StatusCode

Quando substituído em uma classe derivada, obtém ou define o código de resposta HTTP associado a uma única operação.

(Herdado de OperationResponse)

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Produto Versões
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1