Partilhar via


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

  1. 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.

  2. 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

  3. Defina a coluna de identificação como a chave primária.

  4. 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

  1. 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.)

  2. 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

  1. No menu Arquivo, crie um novo projeto.

  2. 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.

  3. 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.

  4. 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

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

  2. 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

  1. No Gerenciador de Servidores/Database Explorer, navegue até a tabela Person que você criou anteriormente.

  2. Arraste a tabela Person para a superfície de design do Designer Relacional de Objetos.

  3. Arraste uma segunda tabela Person para o Designer Relacional de Objetos e altere seu nome para Employee.

  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 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 no objeto Person no Designer Relacional de Objetos. A seta na linha de herança irá apontar para o objeto Person.

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

  8. Defina a Propriedade Discriminatória para Tipo.

  9. Defina a propriedade Valor Discriminatório da Classe Derivada como 2.

  10. Defina a propriedade Valor Discriminatório da Classe Base como 1.

  11. Defina a propriedade Padrão de Herança como Person.

  12. 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

  1. Arraste um controle ListBox para Form1.

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

  3. 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

  1. Pressione F5.

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

  3. 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 atribuir procedimentos armazenados para executar atualizações, inserções e exclusões (Designer Relacional de Objetos)

Como gerar o modelo de objeto em Visual Basic ou C#

Conceitos

Visão geral do designer do/R

Outros recursos

LINQ to SQL [wd_LINQSQL]