Compartilhar via


Como: configurar a herança usando Object Relational Designer

 

Publicado: agosto de 2016

O Object Relational Designer (Designer Relacional de Objetos) suporta o conceito de herança de tabela única como geralmente é implementado em sistemas relacionais. Herança de tabela única, há uma tabela de banco de dados único que contém campos para informações pai e informações de filho. Com dados relacionais, uma coluna de discriminador contém o valor que determina qual classe qualquer registro pertence.

Por exemplo, considere uma tabela de pessoas que contém todos empregado por uma empresa. Algumas pessoas são funcionários e algumas pessoas são gerentes. A tabela de pessoas contém uma coluna denominada EmployeeType que tem um valor de 1 para gerentes e um valor de 2 para funcionários; esta é a coluna de discriminador. Nesse cenário, você pode criar uma subclasse de funcionários e preencher a classe com apenas os registros que têm um EmployeeType valor 2. Você também pode remover colunas que não se aplicam de cada uma das classes.

Criar um modelo de objeto que usa herança (e corresponde a dados relacionais) pode ser um pouco confuso. O procedimento a seguir descreve as etapas necessárias para configurar a herança com Object Relational Designer. Após as etapas genéricos sem se referir a uma tabela existente e colunas podem ser difícil, portanto um passo a passo que usa dados foi fornecida. Para instruções passo a passo detalhadas para configurar a herança usando o Designer Relacional de Objetos, consulte Walkthrough: Creating LINQ to SQL Classes by Using Single-Table Inheritance (O/R Designer).

Para criar classes de dados herdado

  1. Abra o Designer Relacional de Objetos Adicionando um Classes LINQ to SQL item a um projeto existente do Visual Basic ou c#.

  2. Arraste a tabela que você deseja usar como a classe base para o Designer Relacional de Objetos.

  3. Arraste uma segunda cópia da tabela para o Designer Relacional de Objetos e renomeá-lo. Essa é a classe derivada, ou subclasse.

  4. Clique em herança no Object Relational Designer guia o ferramentas, e clique na subclasse (a tabela que você renomeou) e conectar-se a classe base.

    Dica

    Clique o herança item o Toolbox e solte o botão do mouse, clique na segunda cópia da classe que você criou na etapa 3 e, em seguida, clique na primeira classe que você criou na etapa 2. A seta na linha de herança irá apontar para a primeira classe.

  5. Em cada classe, exclua quaisquer propriedades de objeto que você não deseja exibir e que não são usadas para associações. Você receberá um erro se você tentar excluir propriedades de objeto usadas para associações: The property <property name> cannot be deleted because it is participating in the association <association name>.

    Dica

    Como uma classe derivada herda as propriedades definidas na sua classe base, as mesmas colunas não podem ser definidas em cada classe. (As colunas são implementadas como propriedades.) Você pode habilitar a criação de colunas na classe derivada, definindo o modificador de herança na propriedade na classe base. Para obter mais informações, consulte não está em compilação: substituindo propriedades e métodos.

  6. Selecione a linha de herança na Designer Relacional de Objetos.

  7. No propriedades janela, defina o propriedade discriminatória para o nome da coluna que é usado para distinguir os registros em suas classes.

  8. Definir o valor Discriminatório da classe derivada propriedade para o valor no banco de dados que designa o registro como o tipo herdado. (Esse é o valor que é armazenado na coluna de discriminador e que é usado para designar a classe herdada.)

  9. Definir o valor Discriminatório da classe Base propriedade para o valor que designa o registro como um tipo base. (Esse é o valor que é armazenado na coluna de discriminador e que é usado para designar a classe base.)

  10. Opcionalmente, você também pode definir a padrão de herança propriedade para designar um tipo em uma hierarquia de herança usado ao carregar linhas que não correspondem a nenhum código de herança definido. Em outras palavras, se um registro tem um valor na coluna de discriminador que não corresponde ao valor no valor Discriminatório da classe derivada ou valor Discriminatório da classe Base propriedades, o registro será carregado no tipo designado como o padrão de herança.

Consulte também

LINQ to SQL Tools no Visual Studio
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
PREPARAR o que há de novo para o desenvolvimento de aplicativos de dados no Visual Studio 2012
Acessando dados no Visual Studio
LINQ to SQL
Walkthrough: Creating LINQ to SQL Classes by Using Single-Table Inheritance (O/R Designer)
NÃO está em compilação: Herança no Visual Basic
Herança