Compartilhar via


Ferramentas do LINQ to SQL no Visual Studio

LINQ to SQL foi a primeira tecnologia de mapeamento relacional de objeto lançada pela Microsoft. Ele funciona bem em cenários básicos e continua a ter suporte no Visual Studio, mas não está mais em desenvolvimento ativo. Use LINQ to SQL ao manter um aplicativo herdado que já o está usando ou em aplicativos simples que usam o SQL Server e não exigem mapeamento de várias tabelas. Em geral, novos aplicativos devem usar o Entity Framework quando uma camada de mapeamento relacional de objeto é necessária.

Instalar as ferramentas do LINQ to SQL

No Visual Studio, você cria classes do LINQ to SQL que representam tabelas SQL usando o Designer Relacional de Objetos (Object Relational Designer). O designer relacional de objetos é a interface do usuário para edição de arquivos .dbml. Editar arquivos .dbml com uma superfície de designer requer as ferramentas LINQ to SQL que não são instaladas por padrão como parte de qualquer uma das cargas de trabalho do Visual Studio.

Para instalar as ferramentas LINQ para SQL, inicie o instalador do Visual Studio, escolha Modificar, selecione a guia Componentes Individuais, e depois selecione Ferramentas LINQ para SQL na categoria Ferramentas de Código.

O que é o Designer O/R

O Designer O/R tem duas áreas distintas em sua superfície de design: o painel entidades à esquerda e o painel métodos à direita. O painel entidades é a superfície de design principal que exibe as classes de entidade, associações e hierarquias de herança. O painel de métodos é a superfície de design que exibe os métodos do DataContext que são mapeados para os procedimentos armazenados e as funções.

O Designer Relacional de Objetos fornece uma superfície de design visual para criar associações (relações) e classes de entidade do LINQ to SQL baseadas em objetos em um banco de dados. Em outras palavras, o designer O/R cria um modelo de objeto em um aplicativo que se relaciona com objetos presentes em um banco de dados. Ele também gera um DataContext fortemente tipado que envia e recebe dados entre as classes de entidade e o banco de dados. O Designer Relacional de Objetos também fornece funcionalidade para mapear procedimentos armazenados e funções para métodos DataContext para retornar dados e preencher classes de entidade. Por fim, o Designer Relacional de Objetos permite criar relações de herança entre classes de entidade.

Abrir o designer relacional de objetos

Para adicionar um modelo de entidade LINQ ao SQL ao seu projeto, escolha Project>Adicionar Novo Iteme selecione LINQ para Classes SQL na lista de itens de projeto:

Captura de tela mostrando as classes de LINQ to SQL.

O Visual Studio cria um arquivo .dbml e o adiciona à sua solução. Este é o arquivo de mapeamento XML e seus arquivos de código relacionados.

Captura de tela mostrando as classes LINQ to SQL no Gerenciador de Soluções.

Quando você seleciona o arquivo .dbml, o Visual Studio exibe a superfície do Designer O/R, que permite criar visualmente o modelo. A ilustração a seguir mostra o designer após as tabelas Northwind Customers e Orders terem sido arrastadas do Explorador de Servidores . Observe a relação entre as tabelas.

Captura de tela mostrando LINQ to SQL Designer.

Importante

O designer O/R é um mapeador relacional de objeto simples porque dá suporte apenas a relações de mapeamento 1:1. Em outras palavras, uma classe de entidade pode ter apenas uma relação de mapeamento 1:1 com uma tabela ou exibição de banco de dados. Não há suporte para mapeamento complexo, como mapeamento de uma classe de entidade para uma tabela unida; use o Entity Framework para mapeamento complexo. Além disso, o designer é um gerador de código unidirecional. Isso significa que apenas as alterações feitas na superfície do designer são refletidas no arquivo de código. As alterações manuais no arquivo de código não são refletidas no Designer O/R . Alterações feitas manualmente no arquivo de código são substituídas quando o designer é salvo e o código é regenerado. Para obter informações sobre como adicionar código de usuário e estender as classes geradas pela do Designer O/R, consulte Como: estender o código gerado pelo designer O/R.

Criar e configurar o DataContext

Após você adicionar um item de Classes do LINQ to SQL a um projeto e abrir o Designer Relacional de Objetos, a superfície de design vazia representa um DataContext vazio pronto para ser configurado. O DataContext é configurado com as informações de conexão fornecidas pelo primeiro item que é arrastado para a superfície de design. Portanto, o DataContext é configurado usando as informações de conexão do primeiro item solto na superfície de design. Para obter mais informações sobre a classe DataContext, confira Métodos DataContext (Designer Relacional de Objetos).

Criar classes de entidade que mapeiam para tabelas de banco de dados e exibições

Você pode criar classes de entidade mapeadas para tabelas e views arrastando tabelas e views de banco de dados do Server Explorer ou do Database Explorer para o Designer O/R. Conforme indicado na seção anterior, o DataContext é configurado com informações de conexão fornecidas pelo primeiro item que é arrastado para a superfície de design. Se um item subsequente que usa uma conexão diferente for adicionado ao do Designer O/R, você poderá alterar a conexão para o DataContext. Para saber mais, confira Como criar classes do LINQ to SQL mapeadas para tabelas e exibições (Designer Relacional de Objetos).

Criar métodos DataContext que chamam funções e procedimentos armazenados

Você pode criar métodos DataContext que chamam (são mapeados para) funções e procedimentos armazenados arrastando-os do Gerenciador de Servidores ou do Gerenciador de Banco de Dados para o Designer Relacional de Objetos. Procedimentos e funções armazenados são adicionados ao designer O/R como métodos do DataContext.

Nota

Quando você arrasta procedimentos armazenados e funções do Explorador de Servidores ou do Explorador de Banco de Dados para o Designer O/R , o tipo de retorno do método DataContext gerado difere dependendo de onde você descartar o item. Para obter mais informações, confira métodos DataContext (Object Relational Designer).

Configurar um DataContext para usar procedimentos armazenados para salvar dados entre classes de entidade e um banco de dados

Conforme observado anteriormente, você pode criar os métodos de DataContext que chamam procedimentos armazenados e funções. Além disso, você também pode atribuir procedimentos armazenados que são usados para o comportamento de tempo de execução padrão do LINQ to SQL, que executa inserções, atualizações e exclusões. Para obter mais informações, consulte Como atribuir procedimentos armazenados para executar atualizações, inserções e exclusões (Designer O/R).

Herança e Designer Relacional de Objetos

Assim como outros objetos, as classes LINQ to SQL podem usar herança e ser derivadas de outras classes. Em um banco de dados, as relações de herança são criadas de várias maneiras. O Designer Relacional de Objetos dá suporte ao conceito de herança de tabela única, pois geralmente é implementado em sistemas relacionais. Para obter mais informações, consulte Como configurar a herança usando o designer O/R.

Consultas do LINQ to SQL

As classes de entidade criadas pelo Designer Relacional de Objetos foram projetadas para uso com LINQ (consulta integrada à linguagem). Para obter mais informações, consulte Como consultar informações.

Separe o código gerado do DataContext e da classe de entidade em namespaces diferentes.

O Designer Relacional de Objetos fornece as propriedades de Namespace do Contexto e Namespace da Entidade no DataContext. Essas propriedades determinam em qual namespace o DataContext e o código da classe de entidade são gerados. Por padrão, essas propriedades estão vazias e as classes DataContext e entidade são geradas no namespace do aplicativo. Para gerar o código em um namespace diferente do namespace do aplicativo, insira um valor nas propriedades Namespace de Contexto e/ou Namespace de Entidade.

Conteúdo de referência

Consulte também