Segunda-feira, 16 de junho de 2008 às 10h00

Estudando o ADO.NET Entity Framework

[Artigo recomendando para Visual Studio 2008;SP1]

Com o lançamento do novo modelo de acesso a dados na plataforma .NET, conhecido como ADO.NET, ganhamos um acesso a dados nativo de alto desempenho ao SQLServer e Oracle, superando os modelos tradicionais de outras plataformas.

O modelo do ADO.NET trouxe dois modos principais de acordo com o tipo de conexão estabelecida com o banco de dados. O primeiro, conhecido como DataReader , de alta performance destinado ao acesso conectado e modelo DataSet destinado ao modelo desconectado que funciona numa estrutura muito parecida ao banco de dados de forma off-line, permitindo conter tabelas, relacionamentos, chaves primarias e manipulação das informações baseadas em coleção de objetos.

Com a evolução da plataforma .NET, passamos a contar com o modelo de acesso a dados baseado no TableAdapter que, em conjunto com DataSet , já permitiu criar de forma rápida uma camada de CRUD (Create, Read, Update, Delete) para acesso a dados já estabelecendo o primeiro contato com modelo objeto relacional O/R dispensando a necessidade de se fazer código ADO.NET manualmente.

Com o lançamento do .NET 3.5, foi incorporado ao mesmo o LINQ (Language Integrated Query), que oferece uma importante característica no .NET com a possibilidade de fazer consultas em cima de objetos.

Acompanhando a evolução da plataforma .NET, agora temos a disposição o modelo ADO.NET Entity Framework, que vai oferecer o mapeamento objeto relacional (O/R) de forma a permitir o mapeamento das tabelas do banco de dados como objetos para abstrair o acesso a dados deixando para o desenvolvedor que já conhece orientação a objetos mais um grande mecanismo de acessar o banco sem precisar ter conhecimento aprofundado de banco de dados e de T-SQL (Trasact SQL).

Com o LINQ to Entity Framework você poderá fazer mapeamento para diversas bases de dados (SQLServer, Oracle, DB2, MySql, PostgreSQL, SQLite, VistaDB, Informix, Sybase ... ) assim como para outras fontes como XML e serviços.

O primeiro passo é adicionar um novo mapeamento Entity Data Model, que é o arquivo XML com as informações do banco de dados e das classes que será nossa visão. Para iniciar, vá ao Visual Studio 2008 SP1 e adicione um novo arquivo Entity Data Model, cuja extensão é "*.edmx", conforme figura 01 e figura 02.

Figura 01 - Criando Entity Data Model.Figura 01 - Criando Entity Data Model.

Após adicionar o arquivo, você será direcionado pelo assistente para conectar no seu banco de dados e fazer o mapeamento escolhendo as tabelas, views, procedures, funções.

Figura 02 - Assistente para mapeamento.Figura 02 - Assistente para mapeamento.

Selecionando objetos para mapeamento.Figura 03 - Selecionando objetos para mapeamento.

Após avançar, terá como resultado o diagrama de classes conforme a figura 04.

Figura 04 - Diagrama de classe representando o mapeamento.Figura 04 - Diagrama de classe representando o mapeamento.

Todas as classes mapeadas estarão dentro do Entity Data Model de nome "Banco01Model", conforme figura 05.

Figura 05 - Visualização do Molde Browser.Figura 05 - Visualização do Molde Browser.

Com o diagrama criado conforme figura 04, você já pode usar o LINQ para fazer todas as operações de consultas em seus objetos. Para um primeiro testes, você pode adicionar uma nova página e arrastar um controle do tipo GridView e incluir o seguinte código de teste no Page_Load, conforme exemplo na figura 06.

Figura 06 - Consultando Entity Framework usando LINQ to Entity.Figura 06 - Consultando Entity Framework usando LINQ to Entity.

Como você pode observar no simples código de exemplo, estamos fazendo uma consulta usando LINQ na coleção de objetos Clientes e armazenando o resultado no objeto consulta. Depois estamos fazendo a vinculação com um GridView.

Para o desenvolvedor, ele não vai precisar escrever código .NET para acessar o banco de dados e, no lugar do T-SQL para as consultas, vai usar o LINQ que é totalmente integrado ao IntelliSense do Visual Studio. Isso representa um enorme ganho de produtividade.

Você também vai poder vincular o GridView diretamente pelo IDE usando criando um novo Entiy Data Source conforme figura 07.

 Figura 07 - Criando Entity Data Source. Figura 07 - Criando Entity Data Source.

Figura 08 - Configurando Entity Data Source.Figura 08 - Configurando Entity Data Source.

Agora o próximo passo é configurar o GridView para paginar e atualizar os registros, conforme figura 09.

Figura 09 - Configurando GridView.Figura 09 - Configurando GridView.

Como você conferiu nesse artigo, o Linq to Entity abre um novo leque de oportunidades na construção de aplicações baseadas em orientação a objetos usando o novo modelo de mapeamento objeto relacional que visa abstrair todo código de acesso a dados, colocando o desenvolvedor num novo patamar de produtividade.

Comente esse artigo e não se esqueça de uma frase importante "Não tem que ser difícil". Até a próxima!

2 comentários

 Fabio Centenaro
17/06/2008 23h06

Linq to sql

isso se parece muito com linq to sql. Qual a diferença entre os dois? Seria a possibilidade de acesso a diversos bancos?

 Fabio Cordeiro
23/10/2008 17h37

RE: Linq to sql

Sim mas não o acesso somente a diversos bancos, como a coleções por exemplo um List, mas é bem semelhante recentemente estive em um evento da Microsoft aonde foi dito que os olhos dela estão voltados para esta tecnologia, aonde vc tem acesso a dados de uma forma mais abstrata

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Ramon Durães é autor da frase “Não tem que ser difícil”. Possui larga experiência em tecnologia Microsoft. É Microsoft Most Valuable Professional (MVP), Trabalha como Software Engineer na 2pc Professional Consulting onde trabalha com empresas ligadas ao desenvolvimento de software fornecendo amplo suporte na migração para .NET, arquitetura de software e adoção de Visual Studio Team System. Realiza palestras e treinamentos nos maiores eventos do Brasil. Entre em contato pelo blog (http://www.2pc.com.br/).

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.