Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Entity Framework Code First

5,094 views

Published on

Slides da palestra no evento DevBrasil Open Day 2011 em Natal.

Published in: Technology
  • Be the first to comment

Entity Framework Code First

  1. 1. Entity Framework Code First1 Entity Framework Code First
  2. 2. 2Me apresentando Consultor em tecnologias Microsoft Sócio da startup Mozit Profissional Certificado Microsoft Entity Framework Code First
  3. 3. 3Novidades do EF Code First Possibilidade de fazer tudo via código Significa que funciona sem EDMX Mais produtividade Controle absoluto do código Criação simplificada do DbContext Entidades limpas Geração automática do banco de dados Entity Framework Code First
  4. 4. 4Como funciona o Code First Enquanto os outros métodos geram meta dados em memória a partir do EDMX  XML -> EntityType, AssociationType, EdmType, etc Code First gera os mesmos meta dados a partir do código  Classes -> EntityType, AssociationType, EdmType, Databas e, etc Para isso o EF Code First usa Data Annotations e/ou Fluent API Entity Framework Code First
  5. 5. 5Convenções do Code First Chave Primária definida como “Id” ou “CategoryId” Relacionamento é inferido Entity Framework Code First
  6. 6. 6ComeçandoEF Code First Entity Framework Code First
  7. 7. 7Instalando o Code First1. Opção: via download no site  http://msdn.com/data/ef  Baixar e instalar  Referenciar DLL no projeto2. Opção: via NuGet  PM> Install-Package EntityFramework  E só... Entity Framework Code First
  8. 8. 8Demo: Primeiros passos1. Criando as Entidades2. Criando o DbContext3. Gerenciando o contexto4. Gerando o banco de dados Entity Framework Code First
  9. 9. 9Configuração deEntidades Entity Framework Code First
  10. 10. 10Porque configurarmapeamentos? Quando as convenções não atendem aos requisitos  Acontece frequentemente por sinal  Exemplo: string mapeado para nvarchar(max) Melhorar performance do banco Mudar tipos de dados que precisamos usar Entity Framework Code First
  11. 11. 11Tipos de mapeamentos Data Annotations Fluent API Usa atributos nas  Usa métodos classes e encadeados fora propriedades das entidades “Suja” o model  Necessário mais com metadados código Entity Framework Code First
  12. 12. 12Fluent vs Data Annotations Data Annotation Fluent API Configuração na própria  Configuração separada entidade da entidade Dá pra usar uma classe  Possibilidade de separar separada como as configurações por Metadata arquivo Configuração por  Facilidade natural da Atributos programação fluente Aumenta o tamanho das  Aumenta o número de classes arquivo necessários Entity Framework Code First
  13. 13. 13Demo: Configurando comData Annotation1. Definindo uma chave2. Definindo tamanho máximo3. Definindo campos obrigatórios (not null)4. Visualizando alterações na base Entity Framework Code First
  14. 14. 14Demo: Configurando com Fluent API1. Definindo tamanho máximo2. Definindo campos obrigatórios (not null)3. Definindo nome da tabela e colunas4. Definindo tipo das colunas5. Usando tipos complexos Entity Framework Code First
  15. 15. 15Configuraçõesavançadas Entity Framework Code First
  16. 16. 16 Relacionamentos 1..1One-to-one Entity Framework Code First
  17. 17. 17 Relacionamentos 1..NOne-to-many Entity Framework Code First
  18. 18. 18Relacionamentos N..NMany-to-many Entity Framework Code First
  19. 19. 19Separando as configurações Quanto mais entidades tiver meu projeto maior e mais confuso vai ficar meu OnModelCreating Solução: Criar configurações específicas de cada entidade em sua própria classe de configuração  Deve herdar de EntityTypeConfiguration  As configurações passam para o construtor dessa classe Entity Framework Code First
  20. 20. 20Demo: Definindoconfigurações de entidades1. Criando classes de configuração2. Realizando as configurações3. Deixando as configurações visiveis ao EF4. Configurando o relacionamento Entity Framework Code First
  21. 21. 21 Estratégias de criação da baseÉ possivel modificar a forma como o EF cria o banco de dados através da classe Database Os métodos possiveis são:  DropCreateDatabaseAlways  CreateDatabaseIfNotExists  DropCreateDatabaseIfModelChangesDatabase.SetInitializer( new DropCreateDatabaseIfModelChanges<DemoContext>()); Entity Framework Code First
  22. 22. 22 Carregando base com dados iniciaisclass DemoInitialize : CreateDatabaseIfNotExist<Context>{ protected override void Seed(Context context){ context.Categories.Add( new Category { Name = "Sapatos", IsActive = true }); context.SaveChanges(); base.Seed(context); } Entity Framework Code First}
  23. 23. 23Demo: Configurando ainicialização1. Criando inicialização da base2. Customizando inicialização da base3. Visualizando dados criados na base Entity Framework Code First
  24. 24. 24 Duvidas?Blog: waldyrfelix.net/blogTwitter: @WaldyrFelixEmail: waldyrfelix@gmail.com Entity Framework Code First

×