MVP Virtual Conference 2013: Suporte a padrões Web
`
1. Mapeamento Objeto-Relacional
com o Entity 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
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
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
6. 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 …
7. 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
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
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
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
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
Notes de l'éditeur
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.
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/
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.