Your SlideShare is downloading. ×
0
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
Entity Framework 4 Code-First
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

Entity Framework 4 Code-First

1,693

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,693
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
38
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. 23ª Reunião Lisboa - 24/09/2011 http://netponto.org Entity Framework 4.1 Code First Vítor Tomaz
  • 2. Patrocinadores desta reunião
  • 3. Patrocinadores desta reunião
  • 4. Vítor TomazISEL – LEICConsultor IndependenteNetPontoPortugal@ProgramarRevista ProgramarAzurePTHTML5PTGASP
  • 5. Agenda• Introdução• Convenções• Data Annotations• Fluent API• O que não suporta• Futuro?
  • 6. Introdução Model First Database First Code First
  • 7. Introdução• EF 4.1 adiciona funcionalidades à EF 4.0 DbContext Code First EF 4.1 EF 4.1 Entity Framework 4.0 ( na .NET 4 / VisualStudio 2010 )
  • 8. Introdução Desenho Execução Definição das Objectos Classes em código Definição de Configurações Adicionais Metadata em memória Anotações Fluent API
  • 9. Modelo e Convenções
  • 10. Convenções – Descoberta de Tipos • Declarados no “nosso“ Context • Registados via Fluent API • Detectados por Reachability (é recursiva) – Descoberta de Tipos Complexos • São considerados tipos complexos classes que: – Não tenham chave primária (inferida e/ou declarada) – Não tenham propriedades a referir outros tipos – Não sejam referidos por uma collection property noutro tipo
  • 11. Convenções – Chave Primária • ‘Id’ ou ‘<class name>Id’ • Do tipo ‘int’, ‘long’ ou ‘short’ • São registados como identity columns – Detecção de relações inversas • Serão detectadas relações inversas sempre que: – Existir uma e apenas uma navigation property (referência ou colecção) em cada classe – Se existirem mais do que uma não ocorre detecção e teremos que usar DataAnnotations ou Fluent API para as definir
  • 12. Convenções – Chave Estrangeira • Se ocorreu detecção de relação inversa • A propriedades tem o nome: – ‘<navigation property name><primary key property name>’ – ‘<principal class name><primary key property name>’ – ‘<primary key property name>’ • Com o tipo de dados igual à chave primária da outra classe • A multiplicidade vai ser: – Opcional se a propriedade for nullable – Obrigatória se a propriedade não for nullable (activa também o Cascade Delete)
  • 13. Initializers e Seed
  • 14. ConvençõesDatabase Initializers – DropCreateDatabaseAlways – DropCreateDatabaseIfModelChanges – CreateDatabaseIfNotExistsDatabase.SetInitializer(new DropCreateDatabaseIfModelChanges<DemoContext>());
  • 15. ConvençõesSeedpublic class DemoContextInitializer:DropCreateDatabaseIfModelChanges<DemoContext>{ protected override void Seed(DemoContext context) { context.Categorias.Add(new Categoria(){Nome="Bebidas"}); base.Seed(context); }}
  • 16. Data Annotations
  • 17. Data AnnotationsPara validação• Key• Required• MaxLength• MinLength
  • 18. Data AnnotationsPara mapeamento• Table • NotMapped• Column • ComplexType• ConcurrencyCheck • ForeignKey• TimeStamp • InverseProperty• DatabaseGenerated
  • 19. Fluent API
  • 20. Fluent API• A Fluent API sobrepõe-se às Data Annotation• Oferece mais possibilidades de configuração• Usada a partir de – OnModelCreating de DbContext – Classe derivada de EntityTypeConfiguration<T>• Strongly Typed – permite o uso de Intellisense
  • 21. Fluent API• PropriedadesmodelBuilder.Entity<Departmento>().Property(t => t.Nome) .HasMaxLength(50);• TiposmodelBuilder.Entity<Departmento>().ToTable("Deps");• RelaçõesmodelBuilder.Entity<Curso>() .HasMany(t => t.Instrutores) .WithMany(t => t.Cursos)
  • 22. DbContext a partir de base de dados existente
  • 23. O que não suporta – Customização (adição) de convenções • Permite remoção das convenções por defeito – Mapeamento de Procedimentos armazenados • Podem ser chamados directamente (ExecuteSqlCommand ou SqlQuery) – Migração de esquemas • Suporta apagar e recriar bases de dados
  • 24. Futuro?• Migrações• Enum• Spatial data type• Procedimentos Armazenados• Convenções customizáveis
  • 25. Questões?
  • 26. ReferênciasADO.NET Entity Framework 4.1 – http://www.msdn.com/data/ef – NuGet – EntityFrameworkADO.NET team blog – http://blogs.msdn.com/b/adonet/MSDN Library – .NET Development -> Entity Framework 4.1
  • 27. Patrocinadores desta reunião
  • 28. Patrocinadores desta reunião
  • 29. Próximas reuniões presenciais• 24/09/2011 – Setembro (2 anos!)• 29/10/2011 – Outubro• 19/11/2011 – Outubro (Coimbra)• 26/11/2011 – Novembro Reserva estes dias na agenda! :)
  • 30. Obrigado!Vítor Tomazvitorbstomaz@gmail.comhttp://twitter.com/vitortomaz

×