Share via


ChangeOperationResponse Třída

Definice

Výsledky vrácené po volání SaveChanges() při výčtu odpovědí operací vrácených DataServiceResponse třídou.

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
Dědičnost
ChangeOperationResponse

Příklady

Následující kód ukazuje, jak zpracovat výsledky volání .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.  
}  
}  

Poznámky

ChangeOperationResponse objekty nejsou určeny k vytvoření přímo uživatelem této knihovny. Místo toho jsou odkazy vráceny při výčtu odpovědí operací vrácených prostřednictvím enumerátoru ve DataServiceResponse třídě.

SaveChanges odešle čekající změny datové služby shromážděné DataServiceContext od posledního volání do SaveChanges. Změny se do kontextu přidají voláním AddObjectmetod , AddLink, DeleteObject, DetachDeleteLink, , DetachLinka podobných metod.

SaveChangesDataServiceResponse vrátí odpověď, která představuje odpověď na všechny operace odeslané do datové služby. Objekt DataServiceResponse obsahuje posloupnost ChangeOperationResponse objektů, které zase obsahují posloupnost EntityDescriptor nebo LinkDescriptor instance, které představují změny, které byly zachovány nebo pokusu o ně.

Vlastnosti

Descriptor

EntityDescriptor Získá nebo LinkDescriptor upraví operace změny.

Error

Získá chybu vyvolanou operací.

(Zděděno od OperationResponse)
Headers

Při přepsání v odvozené třídě obsahuje hlavičky odpovědi HTTP přidružené k jedné operaci.

(Zděděno od OperationResponse)
StatusCode

Při přepsání v odvozené třídě získá nebo nastaví kód odpovědi HTTP přidružený k jedné operaci.

(Zděděno od OperationResponse)

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro