Condividi tramite


DataServiceRequest<TElement> Classe

Definizione

Rappresenta oggetti richiesta inviati come batch al servizio dati.

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

Parametri di tipo

TElement
Ereditarietà
DataServiceRequest<TElement>

Esempio

Quando ExecuteBatch restituisce, l'intera risposta HTTP per la richiesta batch è stata letto dal flusso di rete, ma le risposte non sono state elaborate. La risoluzione delle identità e la materializzazione dell'oggetto non si verificano per un'entità specificata nella risposta finché non viene iterazione come illustrato nell'esempio seguente.

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.  
        }  
    }     
}  

Commenti

In un gruppo di query inviato come batch al servizio dati, le query vengono specificate come istanze di DataServiceRequest<TElement>. Viene restituito un oggetto DataServiceResponse che rappresenta la risposta dell'intera richiesta batch. Le risposte alle singole query vengono rappresentate come oggetti QueryOperationResponse derivati da OperationResponse e a cui è possibile accedere mediante l'enumerazione dell'istanza DataServiceResponse.

Costruttori

DataServiceRequest<TElement>(Uri)

Inizializza una nuova istanza della classe DataServiceRequest<TElement>.

Proprietà

ElementType

Ottiene il tipo dell'oggetto utilizzato per creare l'istanza DataServiceRequest<TElement>.

RequestUri

Ottiene l'oggetto URI che contiene la stringa della richiesta.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Rappresenta l'URI della query del servizio dati.

(Ereditato da DataServiceRequest)

Si applica a