EF Core 7 introduz melhorias de performance, suporte para mapeamento de colunas JSON, bulk updates e deletes, e novas funcionalidades como interceptors de eventos e entity splitting.
1. EF Core 7: O que há de novo?
RICARDO PERES
PORTO.DATA #80 - 20/12/2022
2. Agenda
Melhoramentos de performance
Mapeamento de colunas JSON
Bulk updates e deletes
Uso de stored procedures para CRUD
Possibilidade de usar value converters para Ids
Suporte para transacções distribuídas
Suporte para Table Per Concrete Type
Interceptors e eventos
Entity splitting
Convenções personalizadas
2
3. Melhoramentos de Performance
Se só for necessário enviar uma alteração, é suprimida a
criação de uma transacção
O envio de um SELECT após um INSERT é evitado (SQL Server)
3
4. Mapeamento de Colunas JSON
Agora é possível mapear uma propriedade a um path JSON
Serve tanto para queries como para actualizações
4
5. Bulk Updates e Deletes 5
Updates e deletes a partir de expressões LINQ
Problemas quando se usa o mapeamento de
heranças TPT ou TPC
6. Uso de Stored Procedures Para CRUD
Agora é possível usar stored procedures para cada
uma das operações CRUD básicas (INSERT, UPDATE,
DELETE)
6
7. Possibilidade de usar value
converters para Ids
Agora também é possível usar value converters na
propriedade Id
7
8. Suporte para transacções
distribuídas
O EF Core 7 já se enlista automaticamente numa transacção
ambiente existente (TransactionScope)
Apenas Windows, por agora
8
9. Suporte para Table Per Concrete Type
A única estratégia de mapeamento de heranças que faltava já
é suportada
9
10. Interceptors e Eventos
Agora é possível interceptar vários pontos no lifecycle de uma entidade:
Materialização
Alteração da expressão LINQ que resulta na geração do SQL
Handling do controlo de concorrência optimístico
Criação de uma DbConnection
Inicialização de um DbCommand
Quando uma entidade vai ser gerida pelo EF ou o seu estado vai mudar
(evento)
Antes e depois de o EF detector alterações nas propriedades de uma entidade
(evento)
10