ChangeOperationResponse Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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) |