EF 4.1 - Criando um Entity Data Model para uso em múltiplos projetos


 

Que tal criar um modelo de entidades usando o Entity Framework de forma que possamos usar o modelo em diversos projetos ?

 

A ideia é bem simples...

 

Vamos criar um Entity Data Mode (EDM) e vamos gerar um arquivo .dll de forma que ele possa ser referenciado em qualquer outro projeto que queiramos usar.

 

O EDM é um modelo entidades-relacionamentos onde :
  • Entidades - são instâncias de tipos de entidades como Clientes, Produtos os quais estão estruturados em registros e chaves;
  • Relacionamentos - são instâncias de tipos de relacionamentos que são associações entre duas ou mais tipos de entidades;

É 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.

 

Tudo isso graças aos recursos do Entity Framework 4.1. 
 

Esta é o um artigo que trata dos recursos do Entity Framework 4.1 dirigido para os iniciantes que estão tendo o seu primeiro contato com esta tecnologia.
 

O Entity Framework é uma ferramenta OR/M que realiza o mapeamento objeto relacional gerando entidades e mapeando-as para as tabelas do banco de dados.. Em sua primeira versão, praticamente não havia o que é conhecido como Code-First(Código Primeiro), ou seja, a possibilidade de gerar o modelo de negócios e suas entidades sem ter que primeiro criar o banco de dados.


Recursos usados:

  1. Visual Basic 2010 Express Edition
  2. Linguagem Visual Basic .NET
  3. Versão 4.1 do Entity Framework

Obs: Você deve ter o SQL Server 2008 Express Edition instalado

Objetivos

Criar um modelo de entidades gerando o arquivo .dll para depois  usá-lo em um projeto distinto.

Criando o Modelo de entidade como uma library (.dll)

Abra o Visual Basic 2010 Express Edition (a versão gratuita do VB .NET) e no menu File selecione New Project;

A seguir escolha o modelo Class Library , informe o nome NorthwindEntidades e clique em OK;

Será criado um projeto do tipo Class Library contendo o arquivo Class1.vb. Podemos excluir este arquivo do projeto.

A seguir no menu Project clique em Add New Item e a seguir selecione o template ADO .NET Entity Data Model;

Informe o nome Northwind.edmx pois eu vou usar o banco de dados Northwind.mdf para gerar o modelo de entidades mas se desejar usar outro nome e outro banco de dados fique a vontade.

Clique no botão Add;

Na janela do Assistente selecione a opção - Generate from Database - e clique em Next>;

A seguir selecione a conexão com banco de dados Northwind (se ela não existir clique em New Connection e crie uma conexão);

Aceite o nome padrão da entity connection e clique no botão Next>;

O nome NorthwindEntities será o nome da string de conexão da entity connection no arquivo de configuração.

A seguir selecione todas as tabelas e todas as stored procedures e marque as opções conforme a figura abaixo:

Para terminar clique em Finish;

O seu projeto deverá conter a seguinte estrutura e arquivos:

Neste momento já podemos dar um Build no projeto no modo Release. O padrão é Debug e para alterar clique sobre o projeto e selecione Properties e a seguir a guia Build e altere para Release.

Após a compilação se você abrir a pasta Release irá encontrar o arquivo NorthwindEntidades.dll.

Pronto ! Já temos o que queremos ; o arquivo .dll para usar em outros projetos.

Selecione o modelo na janela Solution Explorer e na janela de propriedades verifique a propriedade Metadata Artifact Processing:

Observe que a opção padrão é Embed in Output Assembly;

Observe que o nome do Container definido é NorthwindEntities.

Esse será o nome do nosso contexto a quem deveremos referenciar para criar uma instância no projeto onde iremos usar a DLL gerada.

Esta propriedade é muito útil em cenários onde você quer usar o usar o modelo em diferentes projetos visto que o modelo é criado como um projeto de biblioteca de classe (.dll), e tudo que você precisa fazer agora é fazer uma referência a este assembly dll em seu projeto e fornecer a seqüência de conexão.

O projeto que utiliza o modelo, encontra os arquivos de esquema (. CSDL,. Mls,. Ssdl) através da propriedade metadados. Lembre-se que todos os arquivos de esquema são incorporados à dll. Abra o arquivo app.config e verifique a entrada da seqüência de conexão que contém os arquivos de esquema de entradas:

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:

Agora que já temos o nosso modelo de entidades gerado no formato de um assembly DLL e podemos compartilhar este arquivo referenciando-o em outros projetos.

Esse modelo de entidades poderá assim ser referenciado e utilizado em diversos projetos independente do tipo e da linguagem usada.

"Louvai ao Senhor. Louvemos ao Senhor de todo o coração, na assembléia dos justos e na congregação." Salmos 111:1

Referências:


José Carlos Macoratti