Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe DataServiceRequest<TElement>

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

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

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

public sealed class DataServiceRequest<TElement> : DataServiceRequest

Parâmetros de tipo

TElement

O tipo DataServiceRequest<TElement> expõe os membros a seguir.

  NomeDescrição
Método públicoDataServiceRequest<TElement>Inicializa uma nova instância da classe DataServiceRequest<TElement>.
Superior

  NomeDescrição
Propriedade públicaElementTypeObtém o tipo do objeto usado para criar o DataServiceRequest<TElement> instância. (Substitui DataServiceRequest.ElementType.)
Propriedade públicaRequestUriObtém o objeto URI que contém a seqüência de solicitação. (Substitui DataServiceRequest.RequestUri.)
Superior

  NomeDescrição
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método públicoGetHashCodeServe como a função de hash padrão. (Herdado de Object.)
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoToStringRepresenta o URI da consulta ao serviço de dados. (Herdado de DataServiceRequest.)
Superior

Em um grupo de consultas enviadas como um lote ao 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, enumerando a DataServiceResponse instância.

Quando ExecuteBatch retorna a resposta HTTP inteira para a solicitação em lotes que tenha sido lidos do fluxo de rede, mas as respostas não foram processadas. Materialização de objeto e a resolução de identidade não ocorrem 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

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5 SP1

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

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

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2015 Microsoft