Entity Framework Code First

5.026 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
5.026
No SlideShare
0
A partir de incorporações
0
Número de incorporações
694
Ações
Compartilhamentos
0
Downloads
63
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

×