`

11
Mapeamento Objeto-Relacional com o Entity Framework Rogério Moraes de Carvalho VITA Informática http://rogeriomc.wordpress.com @ rogeriomc

Transcript of `

Page 1: `

Mapeamento Objeto-Relacionalcom o Entity Framework

Rogério Moraes de CarvalhoVITA Informática

http://rogeriomc.wordpress.com

@rogeriomc

Page 2: `

Agenda

Mapeamento Objeto-Relacional Entity Framework Entity Framework e Visual Studio Entity Framework e LINQ para Entidades Modelos de desenvolvimento do EF Novidades do Entity Framework 5 Demonstração O que esperar do Entity Framework 6? Recursos

Page 3: `

Mapeamento Objeto-Relacional

ORM, do inglês: Object-Relational Mapping Técnica de desenvolvimento

Permite automatizar tarefas de POO com dados armazenados em bancos de dados relacionais

Frameworks mapeiam objetos de domínio a objetos de banco de dados e geram comandos em SQL

Principais frameworks de ORM para .NET Entity Framework (Open Source – Microsoft) (Open Source – http

://nhforge.org/)

Page 4: `

Entity Framework

O que é o Entity Framework (EF)? Framework para mapear objetos de domínio

para dados relacionais O EF 5 é distribuído como um pacote do NuGet

Funciona com o .NET Framework 4 com limitações Funciona com o .NET Framework 4.5 com acréscimos

Suporte a tipos de dados enum e espaciais Auto Query Cache (desempenho melhorado)

O EF 6 será liberado em 18 de outubro de 2013 Junto com o Visual Studio 2013 e o Windows 8.1 GA

Page 5: `

Entity Framework e Visual Studio

Entity Framework 5 Visual Studio 2010

.NET Framework 4: suporte parcial Visual Studio 2012

.NET Framework 4: suporte parcial .NET Framework 4.5: suporte completo

Entity Framework 6 (18 de outubro de 2013) Visual Studio 2010 / Visual Studio 2012

.NET Framework 4 / .NET Framework 4.5: suporte completo Visual Studio 2013 (18 de outubro de 2013)

.NET Framework 4 / .NET Framework 4.5 / .NET Framework 4.5.1: suporte completo

Page 6: `

Entity Framework e LINQ para Entidades

Aplicação

Banco de dados

Entity Framework

from c in db.Fornecedoreswhere c.UF == "DF"select s.NomeEmpresa

Consulta LINQdb: instância de DbContext

Consulta SQL

SELECT NomeEmpresaFROM FornecedoresWHERE UF = 'DF'

Registros

Entidades db.SaveChanges()

DML ou Stored Procedures

db.Fornecedores.Add(f1);f2.UF = "SP";db.Fornecedores.Remove(f3);

INSERT INTO Fornecedores …UPDATE Fornecedores …DELETE FROM Fornecedores …

Page 7: `

Modelos de desenvolvimento do EF5

Novobanco

Bancoexistente

Database First• Engenharia reversa para o modelo .edmx• Geração automática de classes do .edmx

Model First• Criação do modelo .edmx no designer• Geração do banco de dados do .edmx• Geração automática de classes do .edmx

Code First• Definição de classes e mapeamento no código

(ferramentas de engenharia reversa disponíveis)

Code First• Definição de classes e mapeamento no código• Criação automática do banco de dados

em tempo de execução

Baseado no designer Baseado em codificação

Page 8: `

Novidades do Entity Framework 5

EF Designer e Code First Suporte a Enum Tipos de dados espaciais (geography e geometry)

Somente EF Designer Suporte a Table-Valued Functions (TVFs) Múltiplos diagramas e coloração Geração de código com DbContext

Page 9: `

Demonstração

Abordagens de desenvolvimento do EF5 Database First Model First Code First

System.Data.Entity.DbContext Classe para consultar e persistir mudanças numa fonte

de dados SQL Profiler

Monitorando instruções SQL enviadas para o SQL Server

Page 10: `

O que esperar do Entity Framework 6?

Consultas e salvamento assíncrono (async/await) Suporte a Task-Based Asynchronous Pattern (TAP)

Convenções personalizadas para Code First Mapeamento Code First para stored procedures

Para operações de inclusão, atualização e exclusão Configurações baseadas em código Suporte a dados enums e espaciais no .NET 4.0 Consolidação do EF Power Tools e do EF Designer

Page 11: `

Recursos

MSDN Data Developer Center – Entity Framework http://msdn.microsoft.com/en-us/data/ef.aspx

Projeto do Entity Framework no CodePlex http://entityframework.codeplex.com

Livros da Julia Lerman Programming Entity Framework: Code First

http://shop.oreilly.com/product/0636920022220.do Programming Entity Framework: DbContext

http://shop.oreilly.com/product/0636920022237.do