Introdução ao ADO .NET Entity Framework II
O Entity Framework - EF, é um conjunto de tecnologias da ADO .NET que suporta o desenvolvimento a aplicações orientadas a dados. Arquitetos e desenvolvedores de aplicações orientadas a dados tem se debatido com a necessidade de alcançar dois objetivos distintos:
O problema é que os dados podem estar distribuídos em múltiplos sistemas de armazenamentos, cada um com suas particularidades e protocolos e mesmo em situações no qual somente um único sistema de armazenamento é usado ainda a existe a necessidade de balancear os requisitos de armazenamento com os requisitos de escrever um código eficiente.
O Entity Framework - EF, permite aos desenvolvedores trabalhar com dados na forma de propriedades e objetos específicos do domínio como clientes e produtos, etc, sem ter que relacioná-los com as tabelas do banco de dados e as colunas onde os dados estão armazenados. Isto é possível pela elevação do nível de abstração no qual os desenvolvedores podem trabalhar quando estão tratando com os dados e pela redução do código que é necessário para manter as aplicações orientadas a dados.
O Entity Framework é um componente da .NET Framework 3.5 e pode ser usado em qualquer ambiente no qual estejam instalados o .NET Framework 3.5 com Service Pack 1.
O Entity Framework renova o modelo conceitual permitindo que os desenvolvedores consultem entidades e relacionamentos neste modelo enquanto contam com o suporte da Entity Framework para traduzir estas operações para comandos especificos da fonte de dados liberando as aplicações das dependências de código específicas de uma fonte de dados particular.
Um
padrão muito usado para modelagem de dados divide o modelo de dados em 3
partes:
|
O modelo conceitual, o modelo de armazenamento e o mapeamento entre os dois são expressos em uma especificação externa chamada de Entity Data Model-EDM.
O Entity Data Model é um modelo de dados Entidade-Relacionamento cujo conceito central são as entidades e os relacionamentos, onde Entidades são instâncias de Tipos de entidades como Cliente, Produto, Categoria as quais são estruturas de registros com uma chave. Um Chave de Entidade é formada a partir de um subconjunto de propriedades do Tipo da entidade. A chave (clienteID, ProdutoID, etc) é um conceito fundamental para identificar de forma única , atualizar instâncias e permitir que as instâncias de entidades participem nos relacionamentos.
Além do Entity Data Model , o Entity Framework inclui serviços que incrementam o poder do modelo incluindo o provedor gerenciado EntityClient, ObjectServices e LINQ to Entities conforme mostrado na figura abaixo:
Object Services é um
componente do Entity Framework que permite que você realize consultas,
inclusões, atualizações e exclusões de dados , expressos como um objetos CLR
fortemente tipados que são instâncias de tipos de entidades. O Object Services da suporte a consultas LINQ e Entity SQL contra tipos que são definidos em um EDM. O Object Services também materializam os dados retornados como objetos e propagam as alterações dos objetos de volta a fonte de dados, além de fornecer facilidades para tratar alterações, vinculação de controles a objetos e efetuar o tratamento da concorrência. |
Obs: Entities são instâncias de Entity types e representam instâncias individuais de objetos (Clientes, Produtos)
Um Entity Data Model - EDM é definido pelos seguintes arquivos de modelo e mapeamento:
Abaixo temos as camadas do Entity Data Model e o seu relacionamento :
fonte: http://www.code-magazine.com/article.aspx?quickid=0711051 |
O Entity Framework utiliza estes modelos baseados em XML e arquivos de mapeamento para transformar operações de criar, ler, atualizar, e deletar contra entidades e relacionamentos no modelo conceitual para operações equivalentes na fonte de dados.
Mais do que um outra solução de mapeamento objeto relacional o Entity Framework esta fundamentado na capacidade de permitir que aplicações acessem e alterem dados que estão representados como entidades e relacionamentos no modelo conceitual. O Entity Data Model-EDM é então usado para traduzir consultas de objetos contra tipos de entidades que são representados no modelo conceitual em consultas específicas da fonte de dados. O EF fornece as seguintes formas de consultar um EDM e retornar objetos:
O Entity Framework também inclui um provedor de dados EntityClient que gerencia conexões, traduz consultas de entidades em consultas específicas da fonte de dados e retorna um leitor de dados que os Serviços de Objeto usam para materializar os dados de entidades em objetos. Quando a materialização em objetos não é necessária o provedor EntityClient também pode ser usado como um provedor de dados ADO .NET padrão permitindo que aplicações executem consultas Entity SQL e consumam os dados retornados como um leitor somente-leitura.
A
Entity SQL é uma variação da SQL e foi criada com objetivo de escrever
consultas declarativas e atualizações sobre entidades e relacionamentos de
entidades no nível conceitual. A Entity SQL vai além da SQL pois
da suporte aos seguintes recursos:
|
Junto com o runtime do Entity Framework a plataforma .NET 3.5 SP1 inclui um gerador Entity Data Model (EdmGen.exe); um utilitário de linha de comando que se conecta com a fonte de dados e gera um EDM baseado em um mapeamento um-para-um entre entidades e tabelas. Ela também usa o arquivo de definição de modelo conceitual (.csdl) para gerar uma camada de objeto que contém classes que representam tipos de entidades e o ObjectContext.
Com esta visão geral sobre o Entity Framework e Entity Data Model podemos começar a construir aplicações sobre uma nova perspectiva e com novos recursos fugindo um pouco do modelo tradicional que pouco mudou desde o lançamento da primeira versão da plataforma .NET.
A partir do Entity Framework poderemos fazer mapeamento para bases de dados como SQLServer, Oracle, DB2, MySql, PostgreSQL, SQLite, VistaDB, Informix, Sybase, etc, bem como para outras fontes como XML, Texto e outros serviços.
Vamos iniciar com projeto do tipo WEB mostrando como usar os recursos básicos do Entity Framework usando o Visual Studio 2008 Service Pack 1.
Acompanhe este link: Usando o .NET Entity Framework em uma aplicação WEB
Eu sei é apenas .NET, mas eu gosto...
referências:
José Carlos Macoratti