DataServiceRequest<TElement> Klasse

Definition

Stellt Anforderungsobjekte dar, die als Batch an den Datendienst gesendet werden.

generic <typename TElement>
public ref class DataServiceRequest sealed : System::Data::Services::Client::DataServiceRequest
public sealed class DataServiceRequest<TElement> : System.Data.Services.Client.DataServiceRequest
type DataServiceRequest<'Element> = class
    inherit DataServiceRequest
Public NotInheritable Class DataServiceRequest(Of TElement)
Inherits DataServiceRequest

Typparameter

TElement
Vererbung
DataServiceRequest<TElement>

Beispiele

Bei ExecuteBatch der Rückgabe wurde die gesamte HTTP-Antwort für die Batchanforderung aus dem Netzwerkdatenstrom gelesen, aber die Antworten wurden nicht verarbeitet. Identitätsauflösung und Objektmaterialisierung treten für eine angegebene Entität in der Antwort erst dann auf, wenn sie wie im folgenden Beispiel gezeigt durchlaufen wird.

DataServiceContext service = new DataServiceContext(new   
                                                    Uri("http://myserviceroot"));  

// Create query batches.  
DataServiceRequest[] reqs = new DataServiceRequest[] {   
    new DataServiceRequest<Category>(  
            new Uri("http://myserviceroot/Categories")),  
            new DataServiceRequest<Customer>(  
            new Uri("http://myserviceroot/Customers"))  
};  

DataServiceResponse dsr;  
try  
{  
    // Client will not throw an exception on ExecuteBatch because the   
    // entire response has not been processed yet to know  
    // whether an exception should be thrown.  

    dsr = service.ExecuteBatch(reqs);     

    if (dsr.IsBatchResponse)   
    {  
        /*inspect HTTP artifacts associated with the entire batch:  
                      dsr.BatchHeaders, dsr.BatchStatusCode*/ }  

    foreach (QueryOperationResponse qr in dsr)  
    {  
        if (IsErrorStatusCode(qr.StatusCode))     
        {  
            //q.Error.Message contains the full contents of the error.  
            /* process any part of the Error Contract (<error> element)  
                      sent from the service.  */  
            }  
        }  
        else  
        {  
            if (qr.Query.ElementType == typeof(Customer))  
            {  
                //process customers  
                foreach (Customer c in qr){ /*process the customer*/ }  

                // the DataServiceContext does not materialize, resolve  
                // identity on Customer until it is enumerated.  
            }  
            else if (qr.Query.ElementType == typeof(Category))  
            {  
                // Process categories.  
                foreach (Category cat in qr)  
                {   
                    /*process the category*/   
                 }  
                // the DataServiceContext does not materialize or  
                // resolve identity on the Category until  
                // it is enumerated.  
                // This means that instream errors will be thrown  
                // during iteration.  
            }  
        }  
    }  
}  
catch (DataServiceRequestException e)  
{  
    // This error is thrown if the data service returns with  
    // a response code < 200 or >299 or the top level element.  
    // If neither of the above or true, this exception is not   
    // thrown.  

    dsr = e.Response;  

    if (dsr.IsBatchResponse)   
    {   
        /*inspect HTTP artifacts associated with the entire batch:  
                        dsr.BatchHeaders, dsr.BatchStatusCode*/   
    }  

    /* There will always only be one of these because if the top level  
     status code was >=200 and =<299 and the first element was not an  
     error, the call to start the query will not throw. */  

    foreach (QueryOperationResponse qr in dsr)  
    {  
        if (qr.Error != null)  
        {  
            // Process error.  
        }  
    }     
}  

Hinweise

In einer Gruppe von Abfragen, die als Batch an den Datendienst gesendet werden, werden die Abfragen als DataServiceRequest<TElement> Instanzen angegeben. Ein DataServiceResponse wird zurückgegeben, das die Antwort der Batchanforderung als Ganzes darstellt. Einzelne Abfrageantworten werden als QueryOperationResponse von OperationResponseabgeleitete Objekte dargestellt, auf die durch Auflisten der DataServiceResponse instance zugegriffen werden kann.

Konstruktoren

DataServiceRequest<TElement>(Uri)

Initialisiert eine neue Instanz der DataServiceRequest<TElement>-Klasse.

Eigenschaften

ElementType

Ruft den Typ des Objekts ab, das zum Erstellen der DataServiceRequest<TElement>-Instanz verwendet wird.

RequestUri

Ruft das URI-Objekt ab, das die Anforderungszeichenfolge enthält.

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()

Stellt den URI der Abfrage an den Datendienst dar.

(Geerbt von DataServiceRequest)

Gilt für: