Freigeben über


ChangeOperationResponse Klasse

Definition

Nach einem Aufruf von SaveChanges() zurückgegebene Ergebnisse, wenn von der DataServiceResponse-Klasse zurückgegebene Vorgangsantworten aufgelistet werden.

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
Vererbung
ChangeOperationResponse

Beispiele

Der folgende Code zeigt, wie die Ergebnisse eines Aufrufs von verarbeitet werden 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.  
}  
}  

Hinweise

ChangeOperationResponse-Objekte sollen nicht von einem Benutzer dieser Bibliothek direkt erstellt werden. Stattdessen werden beim Auflisten der über den Enumerator in der DataServiceResponse-Klasse zurückgegebenen Vorgangsantworten Verweise zurückgegeben.

SaveChanges sendet an den Datendienst ausstehende Änderungen, die seit dem letzten Aufruf von DataServiceContext vom SaveChanges gesammelt wurden. Dem Kontext werden Änderungen hinzugefügt, indem AddObject, AddLink, DeleteObject, DeleteLink, Detach, DetachLink und ähnliche Methoden aufgerufen werden.

SaveChanges gibt eine DataServiceResponse zurück, die die Antwort auf alle an den Datendienst gesendeten Vorgänge darstellt. Das DataServiceResponse-Objekt enthält eine Sequenz von ChangeOperationResponse-Objekten, die wiederum eine Sequenz von EntityDescriptor-Instanzen oder LinkDescriptor-Instanzen enthalten, die die beibehaltenen Änderungen oder Änderungsversuche darstellen.

Eigenschaften

Descriptor

Ruft den durch einen Änderungsvorgang geänderten EntityDescriptor oder LinkDescriptor ab.

Error

Ruft den vom Vorgang ausgelösten Fehler ab.

(Geerbt von OperationResponse)
Headers

Enthält beim Überschreiben in einer abgeleiteten Klasse die einem einzelnen Vorgang zugeordneten HTTP-Antwortheader.

(Geerbt von OperationResponse)
StatusCode

Ruft beim Überschreiben in einer abgeleiteten Klasse den einem einzelnen Vorgang zugeordneten HTTP-Antwortcode ab oder legt ihn fest.

(Geerbt von OperationResponse)

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: