Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe DataServiceRequest<TElement>

 

Representa objetos enviados como um lote para o serviço de dados da solicitação.

Namespace:   System.Data.Services.Client
Assembly:  System.Data.Services.Client (em System.Data.Services.Client.dll)

System.Object
  System.Data.Services.Client.DataServiceRequest
    System.Data.Services.Client.DataServiceRequest<TElement>

public sealed class DataServiceRequest<TElement> : DataServiceRequest

NomeDescrição
System_CAPS_pubmethodDataServiceRequest<TElement>(Uri)

Inicializa uma nova instância da classe DataServiceRequest<TElement>.

NomeDescrição
System_CAPS_pubpropertyElementType

Obtém o tipo do objeto usado para criar a DataServiceRequest<TElement> instância.(Substitui o DataServiceRequest.ElementType.)

System_CAPS_pubpropertyRequestUri

Obtém o objeto URI que contém a cadeia de caracteres de solicitação.(Substitui o DataServiceRequest.RequestUri.)

NomeDescrição
System_CAPS_pubmethodEquals(Object)

Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodToString()

Representa o URI da consulta para o serviço de dados.(Herdado de DataServiceRequest.)

Em um grupo de consultas enviadas como um lote para o serviço de dados, as consultas são especificadas como DataServiceRequest<TElement> instâncias. A DataServiceResponse é retornada representando a resposta da solicitação em lotes como um todo. Respostas de consultas individuais são representadas como QueryOperationResponse objetos, derivados de OperationResponse, que são acessíveis ao enumerar o DataServiceResponse instância.

Quando ExecuteBatch retorna a resposta HTTP inteira para a solicitação de lote foram lidos do fluxo de rede, mas as respostas ainda não foram processadas. Materialização de objeto e a resolução de identidade não ocorre para uma entidade especificada na resposta até que ele é iterado conforme mostrado no exemplo a seguir.

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

.NET Framework
Disponível desde 3.5
Silverlight
Disponível desde 2.0

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: