LINQ to SQL Tools no Visual Studio

 

Publicado: abril de 2016

O 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 ele não está mais sob desenvolvimento ativo. Use o LINQ to SQL durante a manutenção de um aplicativo herdado que já está usando ou em aplicativos simples que usam o SQL Server e não requerem mapeamento de várias tabela. Em geral, novos aplicativos devem usar o Entity Framework quando uma camada mapeador relacional de objetos é necessária.

No Visual Studio, você cria classes LINQ to SQL que representam tabelas SQL usando o Designer Relacional de Objetos.

O Designer Relacional de Objetos tem duas áreas distintas na superfície de design: o painel de entidades à esquerda e o painel de métodos à direita. O painel de entidades é a principal superfície de design 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 o DataContext métodos que são mapeados para procedimentos armazenados e funções.

O Object Relational Designer (Designer Relacional de Objetos) fornece uma superfície de design visual para criar LINQ to SQL classes de entidade e associações (relações) que são baseadas em objetos em um banco de dados. Ou seja, o Designer Relacional de Objetos é usado para criar um modelo de objeto em um aplicativo que mapeia para objetos em um banco de dados. Ele também gera um tipo mais acentuado DataContext que é usado para enviar e receber 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 DataContext métodos para retornar dados e preencher classes de entidade. Finalmente, o Designer Relacional de Objetos fornece a capacidade de criar relações de herança entre classes de entidade.

Abrindo o Object Relational Designer

Para adicionar um LINQ no modelo de entidade SQL ao seu projeto, escolha projeto | Adicionar Novo Item e, em seguida, escolha Classes LINQ to SQL da lista de itens de projeto:

Classes LINQ to SQL

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

Classes LINQ to SQL no Solution Explorer

Quando você seleciona o arquivo. dbml, o Visual Studio mostra a superfície de Object Relational designer que permite que você crie visualmente o modelo. A ilustração a seguir mostra o designer após tem sido arrastadas as tabelas Northwind Customers e Orders no Gerenciador de servidores. Observe a relação entre as tabelas.

LINQ to SQL Designer

Importante

O Designer Relacional de Objetos é um mapeador relacional de objeto simples, pois suporta apenas as 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 exibição ou tabela de banco de dados. Não há suporte para o mapeamento complexo, como o 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 somente as alterações feitas à superfície de designer são refletidas no arquivo de código. Alterações manuais no arquivo de código não são refletidas no Designer Relacional de Objetos. Quaisquer alterações feitas manualmente no arquivo de código são substituídas quando o designer é salvo e o código for gerado novamente. Para obter informações sobre como adicionar código de usuário e estender as classes geradas pelo Designer Relacional de Objetos, consulte como: estender o código gerado por Object Relational Designer.

Criando e configurando o DataContext

Depois de adicionar um Classes LINQ to SQL item a um projeto e abrir o Designer Relacional de Objetos, a superfície de design vazio representa vazia DataContext pronto para ser configurado. o DataContext está configurado com as informações de conexão fornecida 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 descartado na superfície de design. Para obter mais informações sobre o DataContext consulte classe métodos de DataContext (Object Relational Designer).

Criando Classes de entidade que mapeiam para tabelas de banco de dados e exibições

Você pode criar classes de entidade mapeadas para tabelas e modos de exibição arrastando tabelas de banco de dados e modos de exibição de Server Explorer/Database Explorer até o Designer Relacional de Objetos. Conforme indicado na seção anterior a DataContext está configurado com as informações de conexão fornecida pelo primeiro item que é arrastado para a superfície de design. Se um item subsequente que usa uma conexão diferente é adicionado para o Designer Relacional de Objetos, você pode alterar a conexão para o DataContext. Para obter mais informações, consulte como: criar classes LINQ to SQL mapeadas para tabelas e exibições (Object Relational Designer).

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

Você pode criar DataContext métodos que chamam (são mapeados) procedimentos armazenados e funções arrastando-as da Server Explorer/Database Explorer até o Designer Relacional de Objetos. Procedimentos armazenados e funções são adicionadas para o Designer Relacional de Objetos como métodos do DataContext.

Dica

Quando você arrasta procedimentos armazenados e funções de Server Explorer/Database Explorer até o Designer Relacional de Objetos, o tipo de retorno de gerado DataContext método difere dependendo de onde você solta o item. Para obter mais informações, consulte métodos de DataContext (Object Relational Designer).

Configurando um DataContext para usar procedimentos armazenados para salvar dados entre Classes de entidade e um banco de dados

Conforme mencionado anteriormente, você pode criar DataContext métodos que chamam procedimentos armazenados e funções. Além disso, você também pode atribuir procedimentos armazenados que podem ser usados para o comportamento padrão de tempo de execução de LINQ to SQL que executa inserções, atualiza, e exclui as. Para obter mais informações, consulte como: atribuir procedimentos armazenados para executar atualizações, inserções e exclusões (Object Relational Designer).

Herança e Object Relational Designer

Como outros objetos, classes de LINQ to SQL podem usar a 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. Designer Relacional de Objetos suporta o conceito de herança de tabela única como geralmente é implementado em sistemas relacionais. Para obter mais informações, consulte como: configurar a herança usando Object Relational Designer.

Consultas LINQ to SQL

As classes de entidade criadas pelo Designer Relacional de Objetos são projetados para uso com LINQ (consulta integrada à linguagem). Para obter mais informações, consulte como: consultar informações.

Separando o DataContext gerado e o código da classe de entidade em Namespaces diferentes

O Designer Relacional de Objetos fornece a Namespace do contexto e Namespace da entidade Propriedades de DataContext. Essas propriedades determinam o namespace do DataContext e código de classe de entidade é gerado. Por padrão, essas propriedades são vazios e DataContext e classes de entidade são gerados no namespace do aplicativo. Para gerar o código em um namespace diferente do namespace do aplicativo, insira um valor para o Namespace do contexto e/ou Namespace da entidade Propriedades.

Nesta seção

Métodos de DataContext (Object Relational Designer)
Explica o que DataContext métodos são e como criá-los.

Herança de classe de dados (Object Relational Designer)
Descreve o conceito de herança de tabela única e como ela é implementada no Designer Relacional de Objetos.

Como: criar LINQ to SQL classes mapeadas para tabelas e exibições (Object Relational Designer)
Descreve como criar classes de entidade que são mapeadas para tabelas e exibições em um banco de dados.

Como: criar uma associação (relação) entre classes LINQ to SQL (Object Relational Designer)
Descreve como criar uma relação entre classes de entidade do LINQ to SQL.

Como: criar métodos DataContext mapeados para procedimentos armazenados e funções (Object Relational Designer)
Descreve como criar DataContext métodos que executam procedimentos armazenados ou funções quando são chamados.

Como: atribuir procedimentos armazenados para executar atualizações, inserções e exclusões (Object Relational Designer)
Descreve como configurar um DataContext usar procedimentos armazenados ao salvar dados de entidade classes de volta para um banco de dados.

Como: alterar o tipo de retorno de um método DataContext (Object Relational Designer)
Descreve como definir o tipo de retorno de um DataContext método a ser o tipo de uma classe de entidade ou um tipo gerado automaticamente criado pelo Object Relational Designer.

Como: adicionar validação a classes de entidade
Descreve como gerar métodos parciais que permitem a adição de código durante alterações de propriedade e atualizações de classe de entidade.

Como: ative em pluralization e off (Object Relational Designer)
Descreve como ativar e desativar o renomeamento automático de classes que são adicionadas ao Designer Relacional de Objetos.

Como: configurar a herança usando Object Relational Designer
Descreve como configurar classes de entidade usando herança de tabela única com o Designer Relacional de Objetos.

Como: estender o código gerado por Object Relational Designer
Descreve como e onde adicionar código que não será substituído quando as alterações em objetos no Object Relational Designer regenerarem o código.

Passo a passo: Criando Classes LINQ to SQL usando a herança de tabela única (Object Relational Designer)
Fornece instruções passo a passo para configurar classes de entidade usando a herança de tabela única com o Designer Relacional de Objetos.

Passo a passo: Personalizando a inserção, atualização e exclusão de comportamento de classes de entidade
Fornece instruções passo a passo para configurar um DataContext usar procedimentos armazenados ao salvar dados de entidade classes de volta para um banco de dados.

Conteúdo de referência

System. Linq

System.Data.Linq

Consulte também

Ferramentas de dados do Visual Studio para .NET
Perguntas frequentes
LINQ to SQL
Acessando dados no Visual Studio