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 :
É 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:
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:
Entity Frameweork 4 - Usando POCO, Code First e as convenções padrão
Entity Framework - Conceitos Básicos - Espiando o modelo conceitual
Entity Framework - Conceitos Básicos - Usando Lazy Load e Eager Load
Entity Framework - Conceitos Básicos - Incluindo, modificando e excluindo objetos
Entity Framework - Conceitos Básicos - Incluindo, modificando e excluindo objetos II
Entity Framework - Conceitos Básicos - Definindo um EDM usando a herança Table Per Type (TPT)
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.aspx
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#