Walkthrough: Creating LINQ to SQL Classes by Using Single-Table Inheritance (O/R Designer)
Publicado: abril de 2016
O LINQ to SQL Tools no Visual Studio oferece suporte a herança de tabela única como geralmente é implementado em sistemas relacionais. Este passo a passo expande as etapas genéricas fornecidas a Como: configurar a herança usando Object Relational Designer tópico e fornece alguns dados reais para demonstrar o uso de herança na Designer Relacional de Objetos.
Durante essa explicação passo a passo, você executará as seguintes tarefas:
Criar uma tabela de banco de dados e adicionar dados a ele.
Crie um aplicativo Windows Forms.
Adicione um LINQ to SQL arquivo a um projeto.
Crie novas classes de entidade.
Configure classes de entidade para usar a herança.
Consulte a classe herdada.
Exiba os dados em um Windows Form.
Criar uma tabela para herdar de
Para ver como funciona a herança, criar uma pequena tabela Person, usá-lo como uma classe base e, em seguida, crie um objeto Employee que herda dela.
Para criar uma tabela base para demonstrar a herança
Em Server Explorer/Database Explorer, com o botão direito do tabelas nó e clique em Adicionar nova tabela.
Dica
Você pode usar o banco de dados Northwind ou qualquer outro banco de dados que você pode adicionar uma tabela.
No Designer de tabela, adicione as seguintes colunas na tabela:
Nome da coluna Tipo de dados Permitir nulos ID int False Tipo int True FirstName nvarchar (200) False Sobrenome nvarchar (200) False Gerenciador de int True Defina a coluna ID como a chave primária.
Salve a tabela e nomeie-o pessoa.
Adicionar dados à tabela
Para que você possa verificar que a herança está configurada corretamente, a tabela precisa de alguns dados para cada classe na herança de tabela única.
Para adicionar dados à tabela
Abra a tabela no modo de exibição de dados. (Com o botão direito do pessoa na tabela Server Explorer/Database Explorer e clique em Mostrar dados da tabela.)
Copie os seguintes dados na tabela. (Você pode copiá-lo e colá-lo na tabela selecionando a linha inteira no painel de resultados.)
ID Tipo FirstName Sobrenome Gerenciador de 1 1 Anne Wallace NULL 2 1 Carlos Grilo NULL 3 1 Yael Peled NULL 4 2 Gatis Ozolins 1 5 2 Andreas Farinha 1 6 2 Tiffany Phuvasate 1 7 2 Alexey Orekhov 2 8 2 Michał Poliszkiewicz 2 9 2 Parte fina Yee 2 10 2 Fabricio Noriega 3 11 2 Mariana Martin 3 12 2 Ken Kwok 3
Criar um novo projeto
Agora que você criou a tabela, crie um novo projeto para demonstrar a configuração de herança.
Para criar o novo aplicativo do Windows
Do arquivo menu, crie um novo projeto.
Nomeie o projeto InheritanceWalkthrough.
Dica
O Designer Relacional de Objetos tem suporte em projetos Visual Basic e c#. Crie o novo projeto em uma dessas linguagens.
Clique o Windows Forms Application modelo e clique OK. Para obter mais informações, consulte Aplicativos cliente.
O projeto InheritanceWalkthrough é criado e adicionado ao Solution Explorer.
Adicionar um LINQ to SQL Classes de arquivo para o projeto
Para adicionar um LINQ to SQL arquivo ao projeto
Sobre o projeto menu, clique em Add New Item.
Clique o Classes LINQ to SQL modelo e clique Add.
O arquivo. dbml é adicionado ao projeto e o Designer Relacional de Objetos é aberto.
Criar a herança usando Object Relational Designer
Configurar a herança arrastando um herança de objeto o Toolbox na superfície de design.
Para criar a herança
Em Server Explorer/Database Explorer, navegue até o pessoa tabela que você criou anteriormente.
Arraste o pessoa tabela para o Designer Relacional de Objetos superfície de design.
Arraste uma segunda pessoa tabela para o Designer Relacional de Objetos e altere seu nome para funcionário.
Excluir o Manager propriedade a partir de pessoa objeto.
Excluir o tipo, ID, FirstName, e LastName propriedades a partir de funcionário objeto. (Em outras palavras, exclua todas as propriedades, exceto Manager.)
Do Object Relational Designer guia do Toolbox, criar um herança entre o pessoa e funcionário objetos. Para fazer isso, clique o herança item o Toolbox e solte o botão do mouse. Em seguida, clique o funcionário objeto e, em seguida, o pessoa objeto o Designer Relacional de Objetos. A seta na linha de herança irá apontar para o pessoa objeto.
Clique o herança linha na superfície de design.
Definir o propriedade discriminatória propriedade tipo.
Definir o valor Discriminatório da classe derivada propriedade 2.
Definir o valor Discriminatório da classe Base propriedade 1.
Definir a padrão de herança propriedade pessoa.
Compile o projeto.
A classe herdada da consulta e exibir os dados no formulário
Agora você irá adicionar algum código ao formulário que consulta uma classe específica no modelo de objeto.
Para criar uma consulta LINQ e exibir os resultados no formulário
Arraste um ListBox para Form1.
Clique duas vezes no formulário para criar um
Form1_Load
manipulador de eventos.Adicione o seguinte código para o
Form1_Load
manipulador de eventos:Dim dc As New DataClasses1DataContext Dim results = From emp In dc.Persons _ Where TypeOf emp Is Employee _ Select emp For Each Emp As Employee In results ListBox1.Items.Add(Emp.LastName) Next
NorthwindDataContext dc = new DataClasses1DataContext(); var results = from emp in dc.Persons where emp is Employee select emp; foreach(Employee Emp in results) { listBox1.Items.Add(Emp.LastName) }
Testar o aplicativo
Execute o aplicativo e verificar se os registros exibidos na caixa de listagem são todos os funcionários (registros que têm um valor de 2 na coluna tipo).
Para testar o aplicativo
Pressione F5.
Verifique se apenas os registros que têm um valor de 2 na coluna tipo são exibidos.
Feche o formulário. (No Depurar menu, clique em parar depuração.)
Consulte também
LINQ to SQL Tools no Visual Studio
How to: Add LINQ to SQL Classes to a Project (O/R Designer)
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
Como: atribuir procedimentos armazenados para executar atualizações, inserções e exclusões (Object Relational Designer)
LINQ to SQL
How to: Generate the Object Model in Visual Basic or C#