Share via


Como retornar um resultado de consulta LINQ como um tipo específico (Visual Basic)

LINQ (Consulta Integrada à Linguagem) facilita o acesso às informações do banco de dados e a execução de consultas. Por padrão, as consultas LINQ retornam uma lista de objetos como um tipo anônimo. Você também pode especificar que uma consulta retorne uma lista de um tipo específico usando a Select cláusula.

O exemplo a seguir mostra como criar um novo aplicativo que executa consultas em um banco de dados SQL Server e projeta os resultados como um tipo nomeado específico. Para obter mais informações, consulte Tipos Anônimos e Selecionar Cláusula.

Os exemplos neste tópico usam o banco de dados de exemplo Northwind. Caso não tenha esse banco de dados no seu computador de desenvolvimento, você poderá baixá-lo no Centro de Download da Microsoft. Para obter as instruções, consulte Baixar Bancos de Dados de Exemplo.

Observação

Seu computador pode mostrar diferentes nomes ou locais para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando o IDE.

Para criar uma conexão com um banco de dados

  1. No Visual Studio, abra o Gerenciador de Servidores/Gerenciador de Banco de Dados clicando em Gerenciador de Servidores/Gerenciador de Banco de Dados no menu Exibir.

  2. Clique com o botão direito do mouse em Conexões de Dados no Gerenciador de Servidores/Gerenciador de Banco de Dados e, em seguida, clique em Adicionar Conexão.

  3. Especifique uma conexão válida com o banco de dados de exemplo Northwind.

Para adicionar um projeto que contém um arquivo LINQ to SQL

  1. No Visual Studio, no menu Arquivo, aponte para Novo e clique em Projeto. Selecione Aplicativo do Windows Forms no Visual Basic como o tipo de projeto.

  2. No menu Projeto , clique em Adicionar Novo Item. Selecione o modelo de item Classes LINQ to SQL.

  3. Atribua um nome ao arquivo northwind.dbml. Clique em Adicionar. O Object Relational Designer é aberto para o arquivo northwind.dbml.

Para adicionar tabelas à consulta ao Designer Relacional de Objetos

  1. No Gerenciador de Servidores/Gerenciador de Banco de Dados, expanda a conexão com o banco de dados Northwind. Expanda a pasta Tabelas .

    Se você tiver fechado o Designer Relacional de Objetos, poderá reabri-lo clicando duas vezes no arquivo northwind.dbml que adicionou anteriormente.

  2. Clique na tabela Customer e arraste-a para o painel esquerdo do designer.

    O designer cria um novo Customer objeto para seu projeto. Você pode projetar um resultado de consulta como o Customer tipo ou como um tipo que você cria. Este exemplo criará um novo tipo em um procedimento posterior e projetará um resultado de consulta como esse tipo.

  3. Salve suas alterações e feche o designer.

  4. Salve seu projeto.

Para adicionar código para consultar o banco de dados e exibir os resultados

  1. Na Caixa de Ferramentas, arraste um controle DataGridView para o Windows Form padrão para seu projeto, Form1.

  2. Clique duas vezes no Form1 para modificar a classe Form1.

  3. Após a End Class instrução da classe Form1, adicione o código a seguir para criar um CustomerInfo tipo para manter os resultados da consulta para este exemplo.

    Public Class CustomerInfo
        Public Property CompanyName As String
        Public Property ContactName As String
    End Class
    
  4. Quando você adicionou tabelas ao Designer Relacional de Objetos, ele adicionou um objeto DataContext ao seu projeto. Este objeto contém o código que você precisa ter para acessar essas tabelas e para acessar também objetos e coleções individuais para cada tabela. O objeto DataContext do projeto é nomeado com base no nome do arquivo .dbml. Para este projeto, o objeto DataContext é chamado northwindDataContext.

    Você pode criar uma instância do DataContext no seu código e consultar as tabelas especificadas pelo Designer O/R.

    No evento Load da classe Form1, adicione o código a seguir para consultar as tabelas expostas como propriedades do contexto de dados. A Select cláusula da consulta criará um novo CustomerInfo tipo em vez de um tipo anônimo para cada item do resultado da consulta.

    Dim db As New northwindDataContext
    
    Dim customerList =
      From cust In db.Customers
      Where cust.CompanyName.StartsWith("L")
      Select New CustomerInfo With {.CompanyName = cust.CompanyName,
                                    .ContactName = cust.ContactName}
    
    DataGridView1.DataSource = customerList
    
  5. Pressione F5 para executar seu projeto e exibir os resultados.

Confira também