Your SlideShare is downloading. ×
MAD II - ADO.Net Entity Framework com Sql Server 2008
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

MAD II - ADO.Net Entity Framework com Sql Server 2008

1,710
views

Published on

Apresentação usada no MAD II(Microsoft Academy Day) sobre o ADO.NET Entity Framework integrado ao SQL Server 2008. A apresentação é parte do SQL Server 2008 Community Launch. …

Apresentação usada no MAD II(Microsoft Academy Day) sobre o ADO.NET Entity Framework integrado ao SQL Server 2008. A apresentação é parte do SQL Server 2008 Community Launch.
Acesso à demonstrações em http://flaviomedeiros.com/2008/12/22/madii-adonet-entity-framework-material-disponvel/


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,710
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Microsoft Academy Day ADO.NET Entity Framework Flavio Medeiros Sales – flavio@flaviomedeiros.com
  • 2. Microsoft Academy Day – ANO II Realização
  • 3. Agenda • Modelagem de Entidades • Mapeando do SQL Server 2008 para Objetos • ADO.NET e EntityClient • A linguagem SQL para entidades • Object Context • LINQ to Entities
  • 4. Entity Framework • O Entity Data Model (EDM) – Descreve o esquema conceitual • Modelo de mapeamento – Esquema conceitual de armazenamento no banco de dados • O Entity Data Provider – Um provedor ADO.NET independente de banco de dados para o EDM • Entity SQL – Uma versão extendida do SQL para EDM • Object Services – Adiciona gerenciamento de mudanças, identidade de objeto, attach / detach • LINQ to Entities – Uma implementação de LINQ sobre EDM
  • 5. Entity Framework Overview
  • 6. Entity Data Model • Entity Data Model é um modelo conceitual de um escopo de problema – Um modelo de objetos, independente de estratégia de armazenamento – Entidades podem possuir tipos simples • Tipos de bancos de dados relacionais (Ex.: int) – Entidades podem conter tipos complexos • Tipos com múltiplos atributos (ex. endereço) – Os relacionamentos entre as entidades também são classes
  • 7. Modelo de mapeamento • Mapeamento entre o modelo conceitual e o modelo de armazenamento • Modelo de mapeamento implementado via três arquivos XML: – Cada um tem seu próprio vocabulário XSD – Esquema conceitual (CSDL) – Esquema de armazenamento (SSDL) – Esquema de mapeamento (MSL) • Mapeamentos geralmente são gerados por ferramentas de automação – EDMGen.exe – ferramenta de linha de comando – Entity Designer – ferramenta gráfica
  • 8. Mapeamento e Bancos de dados • Os modelos de mapeamento suportam – Tabelas e visões como EntitySet – Restrições de chaves estrangeiras como AssociationSet – Stored Procedures como FunctionImport – Funções definidas pelo usuário (UDFs) como FunctionImport – Visões de cliente – similar à visão no banco de dados porém definido no nível do modelo de mapeamento com consultas específicas
  • 9. Demo USANDO ENTIDADES
  • 10. Tipos de objeto e estruturas • Entity Container - Possui Entity Sets e Association Sets • Entity Set - Possui Entidades • Tipo Entity – o objeto de dados principal – Chave de Entidade (Entity Key) – requerido para o tipo Entity – Propriedades – Tipos simples ou complexos • Association Set – Relacionamernto entre entidades – Inclui auto-relacionamento – 0..1 para 0..1 – 0..1 para 1 – 0..1 para * – * para *
  • 11. Herança • O mapeamento suporta herança no modelo conceitual – Tabela por hierarquia – Tabela por tipo – Tabela por tipo completo • Inclui associações entre tipos derivados
  • 12. Divisão de entidades • Os atributos de uma entidade podem ser divididos entre duas tabelas • Entidade Cliente composta por linhas de – Tabela Cliente de Internet – Tabela Cliente Loja Física – Identificado por um discriminador na entidade • Atributos divididos entre duas tabelas – Entidade criada a partir de um join
  • 13. Entidades e tipos de dados • O EDM suporta um conjunto limitado de tipos primitivos – Binary, Byte, Boolean, SByte – Int16, Int32, Int64 – Decimal, Double, Single – DateTime, TimeSpan, DateTimeOffset – String (Unicode) – Guid • Nem todos os tipos de dados são suportados em todos os bancos de dados – O provedor define o mapeamento entre os tipos do EDM e do banco de dados • Tipos definidos pelos usuários não são suportados
  • 14. Entity Provider • Entity Provider nada mais é do que um provedor de dados do ADO.NET – O banco de dados deste provedor é o EDM • Publica o mesmo modelo do provedor ADO.NET – EntityConnection – EntityCommand • Um “provedor de serviçosquot; – Trabalha sobre qualquer provedor de dados do ADO.NET – O implementador do provedor precisa suportar interfaces adicionais – Implementações para SQL Server e SQLCE
  • 15. Porque um Entity Provider? • Compatibilidade com o modelo existente – É possível atualizar o código atual para trabalhar com o EDM • Várias ferramentas trabalham com probvedores ADO.NET – SQL Server Integration Services – SQL Server Reporting Services – Crystal Reports
  • 16. Entity SQL • Uma linguagem parecida com SQL, com algumas extensões – Baseada em texto, como o SQL • Adiciona o conceito de objeto para o SQL – Alguns conceitos definidos pelo SQL-1999 • Ex. SELECT um objeto inteiro – Vai além do SQL-1999 • Ex. Expressões para analisar entidades
  • 17. Entity SQL Extended Keywords Keyword Meaning VALUE Retorna o valor de uma entidade REF Retorna a referência para uma instância de entidade DEREF Retorna o valor a partir de uma referência de entidade NAVIGATE Navega pelo relacionamento entre entidades IS (NOT) TYPE OF A expressão é do tipo ou de algum sub-tipo do tipo sendo testado TREAT Trata o tipo informado como um tipo derivado MULTISET Constrói um multiset a partir de um conjunto de valores ROW Constrói uma linha de tipo anônimo ANYELEMENT Retorna qualquer elemento como uma coleção multi- valorada FLATTEN Converts collection of collections to a flat collection
  • 18. Entity SQL and Entity Provider • Entity SQL is the query language of the Entity Provider • EntityCommands use eSQL • Objects returns as DataRecord(s) – Simple Types – Row Types – Object Instances • Relational and Object Concepts Supported • eSQL is parsed into a CommandTree • Provider neutral – Provider must turn CommandTree into database-specific SQL statements
  • 19. Demo ENTITY PROVIDER
  • 20. Using the ADO.NET Entity Provider // named connection points at model files using (EntityConnection con = new EntityConnection(quot;Name=Northwindquot;)) { con.Open(); // command uses eSQL using (EntityCommand cmd = new EntityCommand( quot;SELECT VALUE c FROM Northwind.Customersquot;, con)) { using (EntityDataReader rdr = cmd.ExecuteReader( CommandBehavior.SequentialAccess)) { // DataReader has a variety of shapes // process DataReader here } } }
  • 21. Object Services • Atualmente o Entity Provider suporta somente consultas • Ações CUD são implementadas via Object Services • Object Services suporta – Gerenciamento de alterações – Object Identity – Substituição de INSERT/UPDATE/DELETE por stored procedures – Concorrência em nível de coluna para atualizaçãoes (UPDATE) – System.Transactions ou transações explícitas
  • 22. Object Query • Object Query é uma classe genérica – ObjectQuery<T> é definidio em todas as entidades – Projeções usam ObjectQuery<DbDataRecord> • Usa eSQL como linguagem de consulta • Suporta parâmetros • Execute retorna um ObjectResult<T> – MergeOption especifica as opções de identificação de objeto • AppendOnly • NoTracking • PreserveChanges • OverwriteChanges
  • 23. Usando Object Services using (ObjectContext ctx = new ObjectContext(quot;Name=Northwindquot;)) { ObjectQuery<Customers> query1 = ctx.CreateQuery<Customers>( quot;select value c from Northwind.Customers as cquot;); // query executes here ObjectResult<Customers> result = query1.Execute( MergeOption.NoTracking); ObjectQuery<Customers> query2 = ctx.CreateQuery<Customers>( quot;select value c from Northwind.Customers as cquot;); // query executes here foreach (Customers c in query2) Console.WriteLine(c.CustomerID); }
  • 24. LINQ to Entities • Object Services pode usar consultas eSQL – Sintaxe não verificável no cliente – Maior tendência a erros do que SQL porque é uma nova linguagem • Object Services suporta LINQ to Entities – Sintaxe verificável – Poder do LINQ sobre o EDM • LINQ to Entities suporta uma parte do eSQL – A maioria dos operadores de consulta do LINQ – LINQ pode ser estendido pelo usuário
  • 25. Usando LINQ to Entities Northwind nw = new Northwind() // select entire entity var query2 = from c in nw.Customers select c; foreach (var cs in query2) Console.WriteLine(quot;{0} {1}quot;, cs.Customerid, cs.CustomerName); // simple projection var query2 = from c in nw.Customers select new { CID=c.CustomerID, CName=c.CompanyName }; foreach (var cs in query2) Console.WriteLine(quot;{0} {1}quot;, cs.CID, cs.CName);
  • 26. Revisão • O Entity Framework usa um EDM como uma camada de armazenamento de dados – Possui seu próprio provedor de dados – Possui sua própria linguagem de consultas – Object Services usado para trabalhar com entidades como objetos .NET • Camada de mapeamento – Mapeia o modelo relacional para o EDM – Qualquer banco de dados relacional • LINQ to Entities – Uma implementação do LINQ para EDM e eSQL
  • 27. Recursos extras • An Entity Data Model for Relational Data Part I: Defining the Entity Data Model , Code Magazine • http://www.code-magazine.com/Article.aspx?quickid=990712022 • An Entity Data Model for Relational Data Part II: Mapping an Entity Data Model to a Relational Store , Code Magazine • http://www.code-magazine.com/Article.aspx?quickid=990712032 • Programming Against the ADO.NET Entity Framework, Code Magazine • http://www.code-magazine.com/Article.aspx?quickid=990712042 28
  • 28. Microsoft Academy Day – ANO II Dúvidas
  • 29. Microsoft Academy Day – ANO II Links dos parceiros • www.linhadecodigo.com.br • www.devmedia.com.br • www.lanlink.com.br • www.ivia.com.br • www.secrel.com.br • www.culminis.org • www.ineta.org • www.officeceara.com.br • www.microsoft.com.br • www.flaviomedeiros.com
  • 30. Microsoft Academy Day ORBRIGADO !