Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

Este artigo vai abordar de uma forma simples e direta, como se trabalhar usando os princípios de orientação a objeto para acesso a dados na plataforma .NET, utilizando o ADO.NET Entity Framework e o Visual Studio 2010 para facilitar o desenvolvimento.

Para que serve

Utilizar uma tecnologia que faça um mapeamento objeto-relacional pode permitir que um software trabalhe em um ambiente multibanco de dados, reduzindo também o acoplamento com a infraestrutura de hardware e software do cliente, tirando a obrigatoriedade e tornando o software mais abrangente.

Em que situação o tema é útil

Em ambientes multibanco, no desenvolvimento de aplicativos orientados a objeto no que tange a persistência desses objetos em um meio físico (banco de dados relacional)

Mapeamento O/R com ADO.NET Entity Framework

Utilizar um framework de ORM (Object Relational Mapping) pode ser uma das formas mais úteis, rápidas e fáceis de tornar um software reutilizável. Neste artigo é explicado o que é um mapeamento objeto-relacional, qual a sua utilidade, como ele pode ser integrado a uma aplicação escrita em .NET, o que é e como utilizar o ADO.NET Entity Framework junto ao Visual Studio 2010.

Ao se criar uma aplicação, seja para estudo, para clientes ou para utilização interna, é uma boa prática usar um padrão que seja reutilizável e que possa se adaptar a uma nova necessidade. Desta forma, ao se tratar do assunto banco de dados é preciso ter em mente que uma forma simples e direta, deve-se desacoplar a aplicação para que o cliente não fique obrigado a utilizar um determinado SGBD. Neste artigo, será criada uma aplicação console que consumirá um banco de dados através do Entity Framework, consultando, incluindo e alterando informações no mesmo.

Com o .NET Framework 4.0 a Microsoft trouxe várias melhorias e dentre elas o ADO.NET Entity Framework também conhecido apenas como EF. O EF está disponível também no .NET Framework 3.5 SP1.

Bancos de Dados

Bancos de dados são, basicamente, repositórios de dados que permitem consulta, inclusão, remoção e alteração de informações pré-existentes. Existem inúmeros bancos de dados no mercado hoje, podendo citar o SQL Server da Microsoft, o Oracle da Oracle Corporation, o MySQL também pertencente a Oracle, dentre outros. Uma das maiores dificuldades hoje, dentro de um projeto de software, é criar um sistema que atenda clientes que possuam bancos de dados diferentes sem haver a necessidade de se alterar o software ou, com menor impacto possível. A primeira coisa que vem à cabeça é utilizar uma arquitetura ou tecnologia que permita que a implementação de um método RetornarClientesPorCnpj, por exemplo, seja a mesma caso o banco de dados utilizado seja um SQL Server ou Oracle.

Um framework altamente escalável e consolidado hoje é o NHibernate. Com ele, é possível construir software totalmente independente do SGBD. Contudo, a Microsoft resolveu integrar uma solução própria para isto criando o ADO.NET Entity Framework. Ferramenta que faz a mesma função que o NHibernate, tirando a responsabilidade da aplicação de saber em qual SGBD os dados serão persistidos. A Figura 1 explica de forma gráfica qual a relação entre as camadas de um software que faz uso do EF.

Figura 1. Hierarquia de trabalho com o Entity Framework

O Mapeamento Objeto-Relacional

Quando se pensa em mapeamento objeto relacional, se pensa em uma forma de fazer com que a linguagem de programação utilizada entenda e saiba lidar com os tipos complexos no banco de dados, no caso, representar uma tabela ou um registro do banco de dados na forma de classes e objetos. Qual a vantagem de trabalhar com uma aplicação construída desta maneira? A partir do momento em que se começa a trabalhar com objetos, se trabalha com o próprio framework em si, o que não limita o desenvolvimento ao que o framework fornece para classes de acesso a dados comuns. O EF, a partir da versão 4 disponível no .NET 4.0, permite trabalhar com duas formas de mapeamento:

...
Quer ler esse conteúdo completo? Tenha acesso completo