![]() |
Uma das grandes vantagens em usar o ORM Entity Framework é que o seu modelo de entidades não tem que coincidir com o seu modelo de banco de dados. Uma das maneiras de fazer isso é usar o recurso Table Splitting (Divisão de Tabela) que consiste em ter duas entidades em seu modelo mapeadas para a mesma tabela de banco de dados físico. |
Vejamos o seguinte
exemplo de divisão de tabela:
1- Você tem uma tabela Produtos que contém colunas para tratar com uma
grande quantidade de dados. A tabela possui além das informações de nome, preço,
descrição, informações sobre as imagens do produto:
Imagem de lado e Imagem Frontal.
![]() |
Para a maioria das operações com a tabela Produtos você não deseja ter que tratar com as informações da imagem do produto. Não queremos retornar informações da imagem quando formos consultar apenas pelo nome e preço do produto. Além disso tratar essas informações consomem mais recursos do sistema eu você gostaria de tratá-las somente em momentos específicos.
Essa é a deixa para usar o recurso Table Splitting com o Entity Framework.
Recursos Usados
Criando o projeto
Abra o VS 2013 Express for Windows Desktop e clique em New Project;
Selecione a linguagem Visual Basic e o template Console Application e informe o nome EF_TableSplitting;
![]() |
A seguir clique no menu TOOLS e em Library Package Manager -> Manage Nuget Packages for Solution
A seguir clique na guia Online e na caixa de pesquisa digite EntityFramework;
Localize o pacote para o EntityFramework e clique no botão Install, confirmando e aceitando a instalação;
![]() |
No menu PROJECT clique em Add New Item e selecione o template ADO .NET Entity Data Model e informe o nome Produtos.edmx:
![]() |
Na próxima janela selecione Generate from DataBase e clique no botão Next>;
Selecione a conexão com o banco de dados que contém a tabela Produtos e clique em Next>;
Selecione a tabela Produtos para gerar o modelo de entidades conforme a figura abaixo:
![]() |
Vamos agora modificar o modelo de forma a obter duas entidades a partir da entidade Produto.
1- Clique com o botão direito do mouse sobre a entidade Produto e selecione Copy;
2- A seguir clique com o botão direito do mouse sobre uma área vazia do descritor e selecione Paste;
3- A seguir selecione a entidade copiada e clique com botão direito do mouse e selecione Rename alterando o seu nome para ProdutoImagens;
![]() |
4- Delete as propriedades imagemFrontal e imagemLateral da entidade Produto;
5- Delete as propriedades nome, descricao e preco da entidade ProdutoImagens;
6- Inclua uma associação 1 : 1 entre as duas tabelas;
![]() |
7- Ao final dessa etapa deveremos obter o seguinte resultado no modelo de entidades :
![]() |
Mapeando o modelo de entidades
Clique com o botão direito do mouse sobre a área vazia do descritor e selecione Mapping Details;
Selecione a tabela Produtos na caixa de listagem <Add a Table or View> ;
O resultado será o mapeamento para a entidade ProdutoImagens:
![]() |
Antes de prosseguir selecione a tabela Produto e verifique o seu mapeamento:
![]() |
Agora clique com o botão direito do mouse sobre a associação entre as entidade e clique em Properties;
Na janela Properties selecione Referential Constraint ;
Na janela Referential Constraint selecione a entidade Produto em Principal;
![]() |
Finalmente clique no botão OK.
Pronto ! Concluímos o Table Splitting onde agora temos duas entidades mapeadas para a mesma tabela.
As consultas agora serão otimizadas para obter informações a partir do modelo de entidades somente do que nos interessa economizando assim recursos do sistema.
João 1:18 Ninguém jamais viu a Deus. O Deus unigênito (Jesus), que está no seio do Pai, esse o deu a conhecer.
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: