[1] A apresentação discute o Entity Framework 4.1 Code First, introduzindo suas principais funcionalidades como convenções, data annotations, Fluent API e o que ainda não é suportado. [2] Foi demonstrado como mapear classes para o banco de dados usando apenas código e como configurar relacionamentos e validações. [3] Apresentou também inicializadores e seed para popular bancos de dados.
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)
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
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
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! :)