Usando MySql com ADO.NET Entity Framework 4 - Parte I
O Entity Framework (EF4) faz parte da família de tecnologias do ADO.NET que oferece o mapeamento objeto relacional (OR/M) a um nível conceitual de abstração. O EF4 possui novas funcionalidades e melhorias, as quais foram sugeridas por muitos desenvolvedores desde a versão 1.0. Desta forma, possibilitou "aproximar" de algumas características oferecidas em outras ferramentas de mapeamento objeto relacional, como NHibernate. As ferramentas de mapeamento objeto-relacional são usadas para eliminar grande parte do código tedioso necessário para recuperar e persistir dados de um banco de dados.
Através de uma interface visual, o desenvolvedor usa-a para criar classes que são mapeadas para tabelas, relacionamentos, stored procedures e outros objetos em um banco de dados.
Uma das grandes novidades do EF4 é a capacidade de criar um ADO.NET Entity Data Model e então construir a base de dados a partir do modelo. Anteriormente, o desenvolvedor precisava criar o banco de dados e depois gerar o modelo.
Sendo assim, o objetivo deste artigo é mostrar como fazer o mapeamento e CRUD com Entity Framework 4 partindo de um banco de dados em MYSQL, já que a maioria dos artigos mostram como fazer o mapeamento com o banco de dados SQL Server. E construir uma simples aplicação utilizando-se das três camadas e a linguagem C#.
Requerimentos
Iniciaremos nosso exemplo criando uma database com o nome de BDEntity, como mostra a Figura 1.0.
Figura 1.0 - Diagrama de banco de dados
Projeto
Para o nosso projeto será utilizado o modelo de 3 camadas, como descrito abaixo:
· BLL - (Business Logic Layer) responsável pela lógica do negócio;
· DAL - (Data Access Layer) responsável pelo acesso e persistência dos dados - interface e classes de acesso a dados usando o Entity Framework;
· UI - (User Interface) responsável pela interface com o usuário - Aplicação WEB.
| Dica: Veja aqui uma definição de modelo em camadas
|
No Visual Studio 2010 selecione File | New | Project. No dropdown selecione o .NET Framework 4, em Installed Templates | Web escolha Empty ASP.NET Web Application. Preencha o campo Name com AppEntity e mantenha a opção “Create directory for solution” selecionada e clique em OK. Conforme traz a Figura 2.0.

Figura 2.0 - Iniciando projeto
Na Solution Explorer, a camada UI já está adicionada ao projeto, já que escolhemos o template Asp.net web application. Então, adicione dois novos projetos do tipo Class Library dentro da solução. Para fazer isso, com o botão direito sobre a Solution Explorer e depois em Add | New Project, será apresentada um tela como mostra a Figura 3.0. Então selecione o template Windows | Class Library.
No campo Name, preencha com os nomes de Entity.Bll e Entity.Dal respectivamente.
Figura 3.0 - Adicionando projetos para a camada de negócios e dados.
A solução deverá possuir três projetos como mostra a Figura 4.0.

Figura 4.0 - Solução com três projetos
A camada de acesso a dados (DAL)
No projeto Entity.DAL será utilizado o Entity Data Model com base em nosso modelo de dados. Clique com o botão direito sobre o projeto Entity.DAL e selecione Add |New Item. A seguir selecione o template Data | ADO .NET Entity Data Model , informe o nome model.edmx e clique no botão Add. A Figura 5.0 traz a demonstração.

Figura 5.0 - Adicionando Modelo Entity Data Model
A seguir, é mostrado um assistente que permite escolher dentre duas opções, tais como Generate from database e Empty Model. A primeira opção permite criar o mapeamento a partir do banco de dados, e a segunda permite criar um modelo de dados e então criar o script necessário para construir a base de dados. A Figura 6.0 mostra as duas opções.
Figura 6.0 - Opções para modelo de dados
Então, selecione a opção Generate from database e em seguida pressione Next. Após, selecione a conexão com o banco de dados, como mostra a Figura 7.0, e clique em Next.
Figura 7.0 - Conexão com banco de dados
| Nota: Para configurar a conexão com o banco de dados clique em New Connection. |
Em seguida selecione as tabelas e aceite o nome do Namespace como testModel, como traz a Figura 8.0 e clique em Finish.
Figura 8.0 - Adicionando tabelas para o modelo
Por fim, como mostra a Figura 9.0, as entidades foram criadas e o mapeamento ORM gerado automaticamente pela ferramenta.
Figura 9.0 - Entidades e mapeamento
Na Figura 9.0 é possível observar as entidades, tbsecao,tbcategoria e tbproduto criadas, bem como o mapeamento em Mapping Details . O arquivo Model.edmx possui um arquivo associado que foi gerado automaticamente pelo Entity.
Abra o arquivo associado ModelDesigner.cs e veja o comentário adicionado, como mostra a Figura 10. Esta mensagem indica que o arquivo foi gerado automaticamente pelo template e modificações manuais podem causar comportamento inesperado, bem como a perda de informações caso o modelo seja gerado novamente pelo Entity Data Model.

Figura 10 - Comentário de aviso
A partir disso, é necessário definir alguns métodos para cada entidade. Para isso, será criada uma Interface. E a seguir, uma classe abstrata que implementa esta interface. E consequentemente, devemos criar as classe concretas das entidades tbsecao, tbcategoria e tbproduto que herdam a classe abstrata.
Conclusão
Neste artigo, apresentou a construção do mapeamento objeto relacional usando-se o EF4 a partir da existência de um banco de dados criado em Mysql. Usou-se a ferramenta de desenvolvimento Visual Studio 2010 e a linguagem C#. No
próximo artigo será criado os métodos na camada DAL. Até lá!
Abraços,
Flávia Moreira
por Flavia Moreira
Flávia Moreira graduada em engenharia da computação. Trabalho como desenvolvedora de sistemas. Publico videos no Msdn: http://msdn.microsoft.com/pt-br/silverlight/
Site http://www.dowhile.com.br
www.devmedia.com.br/articles/viewcomp.asp?comp=21667