Udostępnij za pośrednictwem


ChangeOperationResponse Klasa

Definicja

Wyniki zwrócone po wywołaniu metody podczas SaveChanges() wyliczania odpowiedzi operacji zwracanych przez klasę 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
Dziedziczenie
ChangeOperationResponse

Przykłady

Poniższy kod pokazuje, jak przetworzyć wyniki wywołania metody 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.  
}  
}  

Uwagi

ChangeOperationResponse obiekty nie mają być konstruowane bezpośrednio przez użytkownika tej biblioteki. Zamiast tego odwołania są zwracane podczas wyliczania odpowiedzi operacji zwracanych za pośrednictwem modułu wyliczającego w DataServiceResponse klasie.

SaveChanges przesyła oczekujące zmiany w usłudze danych zebrane przez DataServiceContext od ostatniego wywołania do SaveChangesusługi . Zmiany są dodawane do kontekstu przez wywołanie AddObjectmetod , , DeleteLinkDetachAddLinkDeleteObjectDetachLinki podobnych.

SaveChanges zwraca element DataServiceResponse reprezentujący odpowiedź na wszystkie operacje wysyłane do usługi danych. Obiekt DataServiceResponse zawiera sekwencję obiektów, które z kolei zawierają sekwencję ChangeOperationResponseEntityDescriptorLinkDescriptor wystąpień reprezentujących zmiany, które zostały utrwalone lub podjęto próbę.

Właściwości

Descriptor

EntityDescriptor Pobiera lub LinkDescriptor modyfikowany przez operację zmiany.

Error

Pobiera błąd zgłaszany przez operację.

(Odziedziczone po OperationResponse)
Headers

W przypadku zastąpienia w klasie pochodnej zawiera nagłówki odpowiedzi HTTP skojarzone z pojedynczą operacją.

(Odziedziczone po OperationResponse)
StatusCode

Gdy zastąpisz klasę pochodną, pobiera lub ustawia kod odpowiedzi HTTP skojarzony z pojedynczą operacją.

(Odziedziczone po OperationResponse)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy