Atenção: esse artigo tem um vídeo complementar. Clique e assista!
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:
...