Soluções N Camadas com WCF
Otavio Pecego Coelho
Arquiteto de Soluções
Microsoft Brasil blogs.msdn.com/otavio 1
O que é o Entity Framework
Entity Framework é um ORM que separa o modelo conceitual do físico
Permite a programação OO, incluindo herança e “caminhada sobre objetos”
Permite a mudança do físico sem alteração da lógica de negócio
Modelo de memória simples, baseado e Concorrência Otimista com armazenamento em memória (isto é, sem conexão aberta)
Aderente ao System.Transaction
Feito para ser Multi-banco
Mapeia Tabelas, Views e Stored Procedures
2
Arquitetura do Entity Framework
3
Demo
4
Object Context
É o repositório em memória dos dados/objetos
Guarda objetos e seus status (relativos a mudanças devido a updates, inserts e deletes)
Objetos no ObjectContext podem estar Attached e
Detached
Um ObjectContext não pode ser passado para outros
AppDomains
Não é protegido para concorrência
Você controla o que carrega, quando dar o refresh, como/quando salvar e, se quiser, quem ganha quando houver colisão
5
Query/Load
Edit/Create
Database
Update/Save
6
Queries
Podem ser feitas de 3 maneiras:
LINQ to Entities: linguagem para programador final
QueryBuilder: métodos para suportar o LINQ To Entities;
Entity SQL: linguagem de queries independente de BD que suporta herança e queries;
Use preferencialmente LINQ To Entities no dia a dia O programador controla quantas e quais entidades são carregados em memória:
Queries podem trazer mais de uma Entidade e relacionamento Queries são sempre lazy. Você controla quando trazer os objetos 7
Modelo de programação (1)
O comum é:
Utilizar uma query para trazer os dados para o contexto Manipular diretamente os objetos do contexto para, ao final, salvar as mudanças via SaveChanges
NorthwindEFEntities ctx = new NorthwindEFEntities();
Order o = (from order in ctx.Orders.Include("OrderDetails") select order).First();