C# - Cadastro de Clientes com Entity Framework em Camadas - I
Hoje em dia trabalhar com banco de dados relacional ficou mais fácil. Antes era preciso muito código para realizar as operações básicas de acesso e manutenção de dados, as famosas operações CRUD; hoje em dia temos uma infinidade de ferramentas que facilitam esse trabalho.
No momento a sensação são as ferramentas ORM; Uma ferramenta de mapeamento objeto relacional ou ORM é uma ferramenta que ajuda a simplificar a criação de camada de acesso a dados, automatiza o acesso aos dados, também gera código de acesso a dados e realiza de forma automática o mapeamento entre os dados e os objetos.
O Mapeamento objeto-relacional
(ORM,
O/RM, e Mapeamento O/R) é uma técnica de programação
para conversão e mapeamento de dados entre os bancos de dados
relacionais e as linguagens de programação orientada a objetos.
As ferramentas ORM criam um "banco de dados objeto
virtual" que pode ser usado a partir da linguagem de
programação de forma transparente para o usuário. Hoje em dia
temos centenas de ferramentas ORM.
Para você ver que não estou mentindo segue abaixo uma relação
de ferramentas ORM para a plataforma .NET:
Não foi por acaso que a primeira ferramenta ORM da lista é o Entity Framework da Microsoft pois vamos usá-lo neste artigo para criar um projeto de cadastro de clientes com uma camada de acesso a dados para mostrar o quanto é simples usar os recursos dessa ferramenta ORM.
Eu vou usar somente ferramentas gratuitas no projeto como:
Embora eu já tenho escrito muitos artigos sobre o Entity Framework (veja a seção no site) neste artigo eu volto a mostrar como podemos usar o Entity Framework em uma camada de acesso a dados separada da camada de apresentação.
Com a adoção das boas práticas no desenvolvimento de software ganhamos tempo e dinheiro e nesta aplicação eu mostro como é fácil criar uma camada de acesso a dados usando o Entity Framework.
Nosso objetivo é manter um cadastro de clientes onde temos uma tabela chamada Clientes no banco de dados SQL Server chamado Cadastro.mdf;
Na figura abaixo vemos o Banco de dados Cadastro.mdf e a tabela Clientes com os campos : id, nome, endereco, cep, cidade, celular, telefone, email, contato e obs;
Podemos ver também o formulário de cadastro da aplicação onde temos basicamente os controles TextBox , Buttons e um DataGridView;
Criando a solução e os dois projetos
Vamos criar a solução no Visual C# 2010 Express Edition para isso abra a ferramenta e no menu File-> New Project selecione o template Windows Forms Application e informe o nome EF4_Crud_DAL e clique OK;
A seguir menu File -> Add -> New Project selecione o template Class Library, informe o nome DAL e clique no botão OK;
Após isso clique com o botão direito sobre o nome do projeto EF4_Crud_DAL (não na solução) e altere o seu nome para UI (User Interface) pois este projeto conterá a nossa camada de interface;
A estrutura da solução contendo os dois projetos pode ser vista na figura abaixo:
Vamos incluir um Entity Data Model no projeto DAL, para isso clique com o botão direito do mouse sobre este projeto e selecione Add New Item;
O
Entity Data Model (EDM) ou modelo de
entidades de dados pode ser considerado o coração da
Entity Framework. O EDM é um modelo entidades - relacionamentos onde:
É a partir do modelo de entidades que podemos escrever código usando as diferentes APIs, como o provedor EntityClient ou o Object Services com LINQ to Entities |
Na janela Add New Item selecione o template ADO .NET Entity Data Model, informe o nome Clientes.edmx e clique no botão Add;
Na próxima janela selecione a opção Generate from database, pois vamos gerar o modelo de entidades a partir de um banco de dados existente, e clique em Next>;
Na janela Entity Data Model do assistente verifique se a conexão com o banco Cadastro.mdf esta selecionada (se não existir você deverá criar clicando no botão New Connection);
Aceite os nomes que foram sugeridos pelo assistente, dessa forma o nome CadastroEntities será o nome do seu container do modelo de entidades e o arquivo de configuração App.Config terá a entity connection que será usada para realizar a conexão com o banco de dados;
Se o assistente mostrar uma janela perguntando se você quer copiar o arquivo para o seu projeto e salvar a conexão clique no botão No;
Em seguida selecione a tabela para qual deseja gerar o mapeamento. No exemplo eu estou usando apenas a tabela Clientes;
Para encerrar Clique em Finish;
Encerrando essa etapa veremos na janela Solution o arquivo Clientes.edmx e no descritor a entidade Cliente mapeada pelo EDM;
O Entity Data Model é um conceito e o Entity Framework possui uma implementação particular deste modelo que é percebida como um arquivo EDMX em tempo de desenvolvimento. Em tempo de execução o arquivo EDMX é tratado em três arquivos XML separados cada um com um papel definido:
Abaixo temos uma figura que mostra cada um destes arquivos que representam o arquivo .edmx:
Dessa forma com o Entity Data Model criado temos todo o código que necessitamos (o que também não necessitamos) gerado e estamos prontos para poder definir os nossos métodos para acesso a dados com base no EDM.
Obs: A partir do Entity Framework 4.0 podemos usar classes POCO e não depender mais exclusivamente do EDM.
Veja a segunda parte em : C# - Cadastro de Clientes com Entity Framework em Camadas - II
Referências: