Mapeamento Objeto-Relacional
com o Entity Framework
Rogério Moraes de Carvalho
VITA Informática
http://rogeriomc.wordpress.com
@rogeriomc
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
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/)
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
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
Entity Framework e LINQ para Entidades
Aplicação
Banco de dados
Entity Framework
from c in db.Fornecedores
where c.UF == "DF"
select s.NomeEmpresa
Consulta LINQ
db: instância de DbContext
Consulta SQL
SELECT NomeEmpresa
FROM Fornecedores
WHERE 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 …
Modelos de desenvolvimento do EF5
Novo
banco
Banco
existente
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
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
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
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
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

`

  • 1.
    Mapeamento Objeto-Relacional com oEntity Framework Rogério Moraes de Carvalho VITA Informática http://rogeriomc.wordpress.com @rogeriomc
  • 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
  • 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/)
  • 4.
    Entity Framework  Oque é 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
  • 5.
    Entity Framework eVisual 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
  • 6.
    Entity Framework eLINQ para Entidades Aplicação Banco de dados Entity Framework from c in db.Fornecedores where c.UF == "DF" select s.NomeEmpresa Consulta LINQ db: instância de DbContext Consulta SQL SELECT NomeEmpresa FROM Fornecedores WHERE 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 …
  • 7.
    Modelos de desenvolvimentodo EF5 Novo banco Banco existente 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
  • 8.
    Novidades do EntityFramework 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
  • 9.
    Demonstração  Abordagens dedesenvolvimento 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
  • 10.
    O que esperardo 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
  • 11.
    Recursos  MSDN DataDeveloper 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

Notas do Editor

  • #11 NuGet – Gerenciador de pacotes para a plataforma de desenvolvimento da Microsoft incluindo .NET.O SQL Server suporta dois tipos de dados espaciais (http://technet.microsoft.com/en-us/library/bb933790.aspx)Tipo de dados geométrico (geometry): representa dados num sistema de coordenadas Euclidiano plano.Tipo de dados geográfico (geography): representa dados num sistemas de coordenadas esféricas da Terra.
  • #12 Announcing the Visual Studio 2013 Release Candidate (Somasegar’s blog)http://blogs.msdn.com/b/somasegar/archive/2013/09/09/announcing-the-visual-studio-2013-release-candidate.aspxEF6 Release Candidate Available (ADO.NET Blog)http://blogs.msdn.com/b/adonet/archive/2013/08/21/ef6-release-candidate-available.aspxVisual Studio 2013 Virtual Launch (13 de novembro de 2013)http://events.visualstudio.com/
  • #16 DbContextRepresenta uma combinação dos padrões Unit-Of-Work e Repository e permite a consulta a um banco de dados e agrupa as modificações para serem escritas de volta no armazenamento como uma unidade. DbContext é conceitualmente similar ao ObjectContext.
  • #19 ADO.NET Bloghttp://blogs.msdn.com/b/adonet/