DataServiceRequest<TElement> Klass

Definition

Representerar begärandeobjekt som skickas som en batch till datatjänsten.

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

Typparametrar

TElement
Arv
DataServiceRequest<TElement>

Exempel

När ExecuteBatch returneras har hela HTTP-svaret för batchbegäran lästs från nätverksströmmen, men svaren har inte bearbetats. Identitetsmatchning och objektmaterialisering sker inte för en angiven entitet i svaret förrän den itereras enligt följande exempel.

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

Kommentarer

I en grupp frågor som skickas som en batch till datatjänsten anges frågorna som DataServiceRequest<TElement> instanser. A DataServiceResponse returneras som representerar svaret på batchbegäran som helhet. Enskilda frågesvar representeras som objekt, QueryOperationResponse härledda från OperationResponse, som är tillgängliga genom att räkna upp instansen DataServiceResponse .

Konstruktorer

Name Description
DataServiceRequest<TElement>(Uri)

Initierar en ny instans av DataServiceRequest<TElement> klassen.

Egenskaper

Name Description
ElementType

Hämtar typen av objekt som används för att skapa instansen DataServiceRequest<TElement> .

RequestUri

Hämtar det URI-objekt som innehåller begärandesträngen.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Representerar frågans URI för datatjänsten.

(Ärvd från DataServiceRequest)

Gäller för