Passo a passo: Criando classes LINQ to SQL usando a herança de tabela única (Designer Relacional de Objetos)
O Designer Relacional de Objetos oferece suporte a herança de tabela única porque é geralmente implementada em sistemas relacionais. Essa explicação passo a passo expande até as etapas genéricas fornecidas no tópico Como: Configurar a herança usando o designer do/R e fornece alguns dados reais para demonstrar o uso de herança no Designer Relacional de Objetos.
Durante essa explicação passo a passo, você executará as seguintes tarefas:
Criar uma tabela de banco de dados e adicione dados a ela.
Criar um aplicativo do Windows Forms.
Adicionar um arquivo do LINQ to SQL a um projeto.
Criar novas classes de entidade.
Configurar as classes de entidade para usar herança.
Consultar a classe herdada.
Exibir os dados em um Windows Form.
Criar uma tabela da qual herdar
Para ver como a herança funciona, você criará uma pequena tabela Person, usará como uma classe base e, em seguida, criará um objeto Employee que herda dela.
Para criar uma tabela base para demonstrar a herança
No Gerenciador de Servidores/Database Explorer, clique com o botão direito do mouse no nó Tables e clique em Adicionar Nova Tabela.
Dica
Você pode usar o banco de dados Northwind ou qualquer outro banco de dados ao qual você possa adicionar uma tabela.
No Designer de Tabela, adicione as seguintes colunas à tabela:
Nome da coluna
Tipo de dados
Permitir nulos
ID
int
False
Tipo
int
True
FirstName
nvarchar(200)
False
LastName
nvarchar(200)
False
Manager
int
True
Defina a coluna de identificação como a chave primária.
Salve a tabela e dê o nome de Person.
Adicionar dados à tabela
Para que você possa verificar se 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. (Clique com o botão direito do mouse na tabela Person no Gerenciador de Servidores/Database Explorer e clique em Mostrar Dados da Tabela.)
Copie os seguintes dados na tabela. (Você pode copiar e colar na tabela selecionando a linha inteira no Painel Resultados.)
ID
Tipo
FirstName
LastName
Manager
1
1
Anne
Wallace
NULL
2
1
Carlos
Grilo
NULL
3
1
Yael
Peled
NULL
4
2
Gatis
Ozolins
1
5
2
Andreas
Hauser
1
6
2
Tiffany
Phuvasate
1
7
2
Alexey
Orekhov
2
8
2
Michał
Poliszkiewicz
2
9
2
Tai
Yee
2
10
2
Fabricio
Noriega
3
11
2
Mindy
Martin
3
12
2
Ken
Kwok
3
Criar um novo projeto
Agora que você criou a tabela, crie um novo projeto demonstrar a configuração de herança.
Para criar o novo aplicativo do Windows
No menu Arquivo, crie um novo projeto.
Dê ao projeto o nome InheritanceWalkthrough.
Dica
O Designer Relacional de Objetos tem suporte em projetos do Visual Basic e C#.Crie o novo projeto em uma dessas linguagens.
Clique no modelo do Aplicativo do Windows Forms e clique em OK. Para obter mais informações, consulte Implementando aplicativos cliente com o .NET Framework.
O projeto InheritanceWalkthrough é criado e adicionado ao Gerenciador de Soluções.
Adicionar um arquivo de classes do LINQ to SQL ao projeto
Para adicionar um arquivo LINQ to SQL ao projeto
No menu Projeto, clique em Adicionar Novo Item.
Clique no modelo Classes LINQ to SQL e clique em Adicionar.
O arquivo .dbml é adicionado ao projeto e o Designer Relacional de Objetos é aberto.
Criar a herança usando o Designer Relacional de Objetos
Configure a herança arrastando um objeto Herança da Caixa de Ferramentas para a superfície de design.
Para criar a herança
No Gerenciador de Servidores/Database Explorer, navegue até a tabela Person que você criou anteriormente.
Arraste a tabela Person para a superfície de design do Designer Relacional de Objetos.
Arraste uma segunda tabela Person para o Designer Relacional de Objetos e altere seu nome para Employee.
Exclua a propriedade Manager do objeto Person.
Exclua as propriedades Type, ID, FirstName e LastName do objeto Employee. (Em outras palavras, exclua todas as propriedades exceto Manager.)
Na guia Object Relational Designer da Caixa de Ferramentas, crie uma Herança entre os objetos Person e Employee. Para fazer isso, clique no item Herança na Caixa de Ferramentas e solte o botão do mouse. Em seguida, clique no objeto Employee e no objeto Person no Designer Relacional de Objetos. A seta na linha de herança irá apontar para o objeto Person.
Clique na linha de Herança na superfície de design.
Defina a Propriedade Discriminatória para Tipo.
Defina a propriedade Valor Discriminatório da Classe Derivada como 2.
Defina a propriedade Valor Discriminatório da Classe Base como 1.
Defina a propriedade Padrão de Herança como Person.
Compile o projeto.
Consultar a classe herdada e exibir os dados no formulário
Agora você adicionará um 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 controle ListBox para Form1.
Clique duas vezes no formulário para criar um manipulador de eventos Form1_Load.
Adicione o seguinte código ao manipulador de eventos do Form1_Load:
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 verifique se os registros exibidos na caixa de listagem são todos empregados (os 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 menu Depurar, clique em Parar Depuração.)
Consulte também
Tarefas
Como adicionar classes LINQ to SQL a um projeto (O/R Designer)
Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)
Como gerar o modelo de objeto em Visual Basic ou C#