Consultas: Recuperando informações de uma fonte de dados
Você usa uma consulta para retornar dados que correspondem um conjunto de critérios.Por exemplo, se você quiser saber quanto de seus clientes vivem nos Estados Unidos, você cria uma consulta que escanea uma lista de clientes e verifica o país/região que é especificado em seu endereço.
Você pode criar consultas e salva-las consultas ao modelo do seu aplicativo.Você pode então especificar os critérios de pesquisa usando o designer de consulta.Se o designer de consulta não fornece a funcionalidade que você precisa, você pode estender as consultas escrevendo código.Quando você especificou seus critérios, consuma as consultas em uma tela ou as execute como parte de sua lógica corporativa.
Criando uma Consulta
Você pode criar consultas no Gerenciador de Soluções.Uma consulta é baseada em apenas uma entidade ou tabela no modelo de seu aplicativo (por exemplo, uma entidade Customer ).Uma consulta pode também ser baseada em outras consultas no modelo de seu aplicativo.A entidade, tabela, ou consulta em que a consulta é baseada, é chamada o dado fonte da consulta.Para obter mais informações, consulte Como: adicionar, remover e modificar uma consulta.
Criando uma Consulta Usando o Designer de Consulta
Na maioria dos casos, você pode criar uma consulta visualmente utilizando o designer de consulta.Adicione condições de filtro e grupos de filtro, termos de classificação e parâmetros para uma consulta fazendo seleções no designer.Para obter mais informações, consulte Como: criar uma consulta usando o criador de consultas.
Condições de Filtro
Você pode restringir os resultados de uma consulta adicionando uma ou mais condições de filtro.Uma condição de filtro descreve uma regra que deve ser encontrada por cada linha de dados.Linhas que estão de acordo com as regras são incluídas nos resultados da consulta.Uma condição de filtro contém as três partes básicas seguintes:
Uma propriedade de seleção
Um valor de comparação
Um operador
Uma propriedade de seleção é a propriedade que você deseja usar como a base da condição de filtro.Por exemplo, para retornar pedidos de venda que têm uma determinada data de pedido, você pode usar OrderDate como a propriedade de seleção.Uma propriedade de seleção pode ser uma propriedade nos dados de origem ou uma propriedade em uma entidade ou tabela relacionada.No designer de consulta, propriedades aparecem somente para entidades ou tabelas relacionadas que têm uma multiplicidade de zero a um ou um.Por exemplo, uma ordem de venda tem apenas um cliente.Portanto, em uma consulta que retorne pedidos de venda, você pode selecionar as propriedades do cliente relacionado como parte de uma condição de filtro.Se você desejar usar uma propriedade em uma entidade ou tabela relacionada que tenha uma multiplicidade de muitos, você deve estender a consulta usando código.
O valor de comparação é comparado à propriedade de seleção.Um valor de comparação pode ser um valor literal como a cadeia de caracteres “9/22/2009 12:00: 00 AM”, uma propriedade de seleção, um parâmetro, ou um valor relativo como Agora, Hoje, ou Início da Semana.
Um operador é um símbolo que especifica o tipo de comparação que você deseja fazer.Por exemplo, para retornar os pedidos de venda cuja a data de pedido é menor que “9/22/2009 12:00: 00 AM”, pode-se selecionar o operador “<".
A condição de filtro completa descrita neste exemplo é Where OrderDate < 9/22/2009 12:00:00 AM.
Você pode relacionar uma condição de filtro a outras condições de filtro usando um dos seguintes operadores lógicos: And, Or, And Not, Or Not.
Você pode alterar a ordem das condições arrastando-as para suas posições desejadas no designer.
A ilustração a seguir mostra as partes de uma condição de filtro.
Grupos de Filtro
Você pode agrupar condições de filtro juntas, de modo que sejam avaliadas como uma única unidade separada do resto das condições de filtro.Para fazer isso, crie um grupo de filtro no designer de consulta.
Agrupar condições de filtro é como colocar parênteses em torno de uma expressão em uma equação matemática ou declaração lógica.Quando você agrupa condições, o operador lógico que aparece antes da primeira condição em um grupo aplica-se ao grupo inteiro.
Assim como condições de filtro individuais, você pode alterar a ordem dos grupos de filtro arrastando-as a posição desejada no designer.
A ilustração a seguir mostra dois grupos de filtro.
Termos de Classificação
Você pode especificar a ordem padrão em que os registros aparecem nos resultados de uma consulta adicionando um ou mais termos de classificação.Um termo de classificação contém uma propriedade e uma direção (por exemplo, OrderDate e Ascending).Termos de classificação definem a ordem padrão dos registros que aparecem em uma tela.Usuários podem ver registros em uma ordem diferente fazendo seleções na interface de usuário (UI) da tela.No designer de consulta, você pode alterar a ordem de termos de classificação arrastando-os para posição desejada na lista.
Parâmetros
Você pode habilitar que usuários filtrem dinamicamente resultados da consulta.Por exemplo, você pode permitir um usuário ver pedidos de venda regionais selecionando um território de vendas específico em uma tela.Para oferecer suporte a esse cenário, adicione um parâmetro a uma consulta e nomeie-a corretamente (por exemplo, SalesTerritory).Depois defina o valor de comparação de um filtro para o parâmetro.Por exemplo, a expressão de consulta pode ser Where TerritoryID = SalesTerritory.
Você pode criar telas que permitem os usuários fornecerem em tempo de execução o valor do parâmetro.Para obter mais informações, consulte Como: fornecer um valor para um parâmetro de consulta.
Estendendo uma Consulta Usando Código
Alguns tipos de condições de filtro não são suportados pelo designer de consulta.Se você encontrar uma limitação no designer, você pode adicionar condições a sua consulta usando código.
Observação |
---|
Você não pode estender a consulta de uma telaVocê só pode estender consultas que aparecem no Gerenciador de Soluções.Para obter mais informações sobre como editar a consulta de uma tela, veja Como filtrar dados em uma tela do Silverlight. |
A tabela a seguir mostra duas condições de filtro que você não pode criar usando o designer de consulta.
Condição de filtro |
Razão para usar o código |
---|---|
Retorna os 10 melhores clientes baseado no número de pedidos de venda. |
Para determinar o número de pedidos de venda, você deve usar a operação Count.Operações como Count, Aggregate, e Sum não estão disponíveis no designer de consulta |
Retorna todos os clientes que compraram um carrinho da mão. |
Para determinar se um cliente comprou um carrinho da mão, você precisa usar uma condição de filtro que faz referência a uma entidade Product.Porque um cliente pode ser associado a vários produtos, a entidade Product provavelmente deve existir no lado de muitos de uma relação Customer-Product.O designer de consulta não permite você navegar para o lado de muitos de um relacionamento. |
Para resolver essa limitação, você pode adicionar código personalizado a um método que é chamado quando a consulta é executada.Para obter mais informações, consulte Como: estende uma consulta usando código.
Em seu código, você pode definir condições de filtro usando sintaxe padrão LINQ.Quando a consulta é executada, as condições que você define no designer são combinadas com as condições que você define em seu código para gerar o resultado da consulta.
Quaisquer condições que você define em seu código não aparecem como condições de filtro no designer de consulta.Da mesma forma, condições de filtro que você adiciona utilizando o designer de consulta não aparecem no método.Se você deseja adicionar um parâmetro a uma consulta, faça isso usando somente o designer de consulta.Parâmetros que você adiciona utilizando o designer de consulta aparecem na lista de parâmetros do método.
Consumindo uma consulta
Você pode consumir uma consulta em uma tela ou executar a consulta em código como parte de uma operação comercial.
Consumindo uma Consulta em uma Tela
Você pode criar uma tela que é baseada em uma consulta personalizada (por exemplo, uma tela que mostra uma lista de clientes localizados nos Estados Unidos).Para obter mais informações, consulte Como criar uma tela do Silverlight.
Você pode adicionar várias consultas a uma tela.Por exemplo, você pode criar uma consulta que mostra uma lista de pedidos de venda para um cliente específico.Você pode adicionar essa consulta a tela do Cliente.Você pode então permitir que o usuário selecione um cliente para exibir todos os pedidos de venda relacionados.Para obter mais informações sobre como fazer isso, consulte Como: fornecer um valor para um parâmetro de consulta.
Consumindo uma Consulta em Código
Você pode recuperar consultas do modelo do aplicativo, e depois executa-las no código.Isso permite que você trabalhe com coleções de dados de destino na lógica comercial do seu aplicativo.Para obter mais informações, consulte Como: recuperar dados de uma consulta usando código.
Tópicos relacionados
Nome |
Descrição |
Explica onde você pode adicionar uma consulta na interface de usuário Visual Studio LightSwitch. |
|
Descreve como definir as condições de filtro, parâmetros e os termos classificação de uma consulta usando um designer visual. |
|
Descreve como habilitar usuários para fornecer um valor a um parâmetro de consulta. |
|
Descreve como modificar uma consulta de maneiras que vão além dos recursos do designer. |
|
Descreve como manipular eventos que ocorrem antes e depois que uma consulta é executada. |
|
Descreve como recuperar e executar uma consulta usando código. |
|
Descreve as propriedades de consultas e elementos de consulta.Você pode definir os valores dessas propriedades na janela Propriedades. |