Partilhar via


Passo a passo: Criar classes LINQ to SQL usando herança de tabela única (O/R Designer)

As ferramentas LINQ to SQL no Visual Studio oferecem suporte à herança de tabela única, pois normalmente são implementadas em sistemas relacionais. Este passo a passo expande as etapas genéricas fornecidas no tópico Como configurar a herança usando o O/R Designer e fornece alguns dados reais para demonstrar o uso da herança no O/R Designer.

Durante este passo a passo, você executa as seguintes tarefas:

  • Crie uma tabela de banco de dados e adicione dados a ela.

  • Crie um aplicativo do Windows Forms.

  • Adicione um arquivo LINQ to SQL a um projeto.

  • Crie novas classes de entidade.

  • Configure as classes de entidade para usar herança.

  • Consulte a classe herdada.

  • Exiba os dados em um Windows Form.

Criar uma tabela para servir de base para herança

Para ver como a herança funciona, crie uma tabela pequena Person , use-a como uma classe base e, em seguida, crie um Employee objeto que herda dela.

Para criar uma tabela base para demonstrar a herança

  1. No Gerenciador de Servidores ou no Gerenciador de Banco de Dados, clique com o botão direito do mouse no nó Tabelas e clique em Adicionar Nova Tabela.

    Observação

    Você pode usar o banco de dados Northwind ou qualquer outro banco de dados ao qual você possa adicionar uma tabela.

  2. No Designer de Tabela, adicione as seguintes colunas à tabela:

    Nome da Coluna Tipo de dados Permitir nulos
    ID int Falso
    Type int Verdadeiro
    Nome próprio Nvarchar(200) Falso
    Apelido Nvarchar(200) Falso
    Gestor int Verdadeiro
  3. Defina a coluna ID como a chave primária.

  4. Salve a tabela e nomeie-a Pessoa.

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

  1. Abra a tabela na vista de dados. (Clique com o botão direito do mouse na tabela Pessoa no Gerenciador de Servidores ou no Gerenciador de Banco de Dados e clique em Mostrar Dados da Tabela.)

  2. Copie os seguintes dados para a tabela. (Você pode copiá-lo e colá-lo na tabela selecionando a linha inteira no Painel de Resultados .)

    ID Type Nome próprio Apelido Gestor
    1 1 Ana Wallace NULL
    2 1 Fábio 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 Pois é 2
    10 2 Fabrício 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 para demonstrar a configuração da herança.

Para criar o novo aplicativo Windows Forms

  1. No Visual Studio, no menu Arquivo, selecione Novo>Projeto.

  2. Expanda Visual C# ou Visual Basic no painel esquerdo e, em seguida, selecione Windows Desktop.

  3. No painel central, selecione o tipo de projeto Windows Forms App .

  4. Nomeie o projeto InheritanceWalkthrough e escolha OK.

    O projeto InheritanceWalkthrough é criado e adicionado ao Gerenciador de Soluções.

Adicionar um arquivo de classes LINQ to SQL ao projeto

Para adicionar um arquivo LINQ to SQL ao projeto

  1. No menu Projeto , clique em Adicionar Novo Item.

  2. Clique no modelo LINQ to SQL Classes e selecione Adicionar.

    O .dbml arquivo é adicionado ao projeto e o O/R Designer é aberto.

Criar a herança usando o O/R Designer

Configure a herança arrastando um objeto Inheritance da Caixa de Ferramentas para a superfície de desenho.

Para criar a herança

  1. No Gerenciador de Servidores ou no Gerenciador de Banco de Dados, navegue até a tabela Pessoa criada anteriormente.

  2. Arraste a tabela Pessoa para o espaço de design do O/R Designer.

  3. Arraste uma segunda tabela Pessoa para o O/R Designer e altere seu nome para Funcionário.

  4. Exclua a propriedade Manager do objeto Person .

  5. Exclua as propriedades Type, ID, FirstName e LastName do objeto Employee . (Em outras palavras, exclua todas as propriedades, exceto o Manager.)

  6. 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, em seguida, no objeto Person no O/R Designer. A seta na linha de herança aponta para o objeto Person .

  7. Clique na linha Herança na superfície de design.

  8. Defina a propriedade Discriminator Property como Type.

  9. Defina a propriedade Derived Class Discriminator Value como 2.

  10. Defina a propriedade Base Class Discriminator Value como 1.

  11. Defina a propriedade Inheritance Default como Person.

  12. Construa o projeto.

Consultar a classe herdada e exibir os dados no formulário

Agora você adiciona 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

  1. Arraste uma ListBox para o Form1.

  2. Clique duas vezes no formulário para criar um manipulador de Form1_Load eventos.

  3. Adicione o seguinte código ao manipulador de Form1_Load eventos:

    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 a aplicação

Execute o aplicativo e verifique se os registros exibidos na caixa de listagem são todos os funcionários (registros que têm um valor de 2 em sua coluna Tipo ).

Para testar a aplicação

  1. Pressione F5.

  2. Verifique se apenas os registros que têm um valor de 2 em sua coluna Tipo são exibidos.

  3. Feche o formulário. (No menu Depurar , clique em Parar Depuração.)