Dominando o Entity Framework Core
Um guia definitivo para você dominar por completo este poderoso ORM
Rafael AlmeidaMicrosoft MVP
Introdução
- Apresentação Assistir grátis 1:00
- O que é o Entity Framework Core? Assistir grátis 2:00
- Teste os seus conhecimentos 2:00
Setup do Ambiente
- Instalação do .NET 5 e SQL Server 4:00
- Criando um projeto via CLI 5:00
- Criando classes de entidades 11:00
EF Database
- Introdução 2:00
- Para que serve o Ensure Deleted/Created? 5:00
- Resolvendo GAP do EnsureCreated para múltiplos contextos 8:00
- HealthCheck do banco de dados 6:00
- Gerenciando o estado da Conexão 8:00
- Conhecendo os comandos ExecuteSql 6:00
- Como se proteger de ataques do tipo SQL Injection? 7:00
- Detectando migrações Pendentes 6:00
- Forçando uma migração 4:00
- Recuperando todas as migrações existentes em sua aplicação 4:00
- Recuperando migrações aplicadas em seu banco de dados 5:00
- Gerando o script de criação SQL do modelo de dados 3:00
- Teste os seus conhecimentos 3:00
Tipos de carregamento - DeepDive
- Tipos de carregamentos 1:00
- Consultando dados usando carregamento adiantando (Eager) 6:00
- Consultando dados usando carregamento explícito (Explicitly) 9:00
- Consultando dados usando carregamento lento (LazyLoad) 17:00
- Teste os seus conhecimentos 4:00
Consultas
- Introdução a consultas 2:00
- Configurando um filtro global 7:00
- Ignorando filtros globais 2:00
- Criando consultas projetadas 8:00
- Criando consultas parametrizadas 7:00
- Criando consultas interpoladas 4:00
- Usando o recuso TAG em suas consultas para auditar comandos 3:00
- Entendendo a diferença em consultas 1xN vs Nx1 7:00
- Divisão de consultas com SplitQuery 9:00
Stored Procedures
- Introdução 1:00
- Criando uma procedure de inserção 5:00
- Executando inserção via procedure 4:00
- Criando uma procedure de consulta 3:00
- Executando uma consulta via procedure 7:00
Infraestrutura
- Introdução 2:00
- Configurando um log simplificado 6:00
- Filtrando eventos de seus logs 7:00
- Gravando seus logs em um arquivo 5:00
- Habilitando erros detalhados 5:00
- Habilitando visualização dos dados sensíveis 5:00
- Habilitando Batch Size 6:00
- Configurando o Timeout do comando global 4:00
- Configurando o Timeout do comando para um fluxo 2:00
- Habilitando resiliência para sua aplicação 4:00
- Criando uma estratégia de resiliência 4:00
Modelo de dados
- Introdução 2:00
- Collations 9:00
- Sequencias 8:00
- Índices 10:00
- Propagação de dados 7:00
- Esquemas 4:00
- Conversores de Valores 10:00
- Criando um conversor de valor customizado 13:00
- O que é Shadow Properties 7:00
- Configurando uma propriedade de sombra 3:00
- Inserindo e Consultando dados usando uma propriedade de sombra 6:00
- Owned Types 12:00
- Configurando Relacionamento um-para-um 15:00
- Configurando Relacionamento um-para-muitos 5:00
- Configurando Relacionamento muitos-para-muitos 9:00
- Customização muitos-para-muitos 5:00
- Campo de apoio 7:00
- Configurando modelo de dados com TPH 12:00
- Configurando modelo de dados do TPT 5:00
- Sacola de propriedades 7:00
Atributos - DataAnnotations
- Introdução 2:00
- Atributo Table 5:00
- Atributo Inverse Property 5:00
- Atributo NotMapped 3:00
- Atributo Database Generated 6:00
- Atributo Index 3:00
- Atributo Comment 3:00
- Atributo Backing Field 2:00
- Atributo Keyless 2:00
EF Functions
- Introdução 1:00
- Funções de datas 11:00
- Função Like 5:00
- Função DataLength 6:00
- Função Property 7:00
- Função Collate 4:00
Interceptação
- Introdução 1:00
- O que são interceptadores de comandos? 3:00
- Criando e registrando um interceptador 5:00
- Sobrescrevendo métodos da classe base 6:00
- Aplicando hint NOLOCK nas consultas 6:00
- Interceptando abertura de conexão com o banco 6:00
- Interceptando alterações 5:00
Transações
- Introdução 1:00
- O que é transação? 6:00
- Comportamento padrão do EF Core 5:00
- Gerenciando transação manualmente 8:00
- Revertendo uma transação 5:00
- Salvando ponto de uma transação 7:00
- Usando TransactionScope 6:00
UDFs (Funções definidas pelo usuário)
- Introdução 1:00
- O que é UDF? 2:00
- Built-In Function 9:00
- Registrando Funções 6:00
- Registrando Funções Via Fluent API 5:00
- Função defina pelo usuário 4:00
- Customizando uma função complexa 14:00
Performance
- Introdução 1:00
- Tracking vs NoTracking 7:00
- Resolução de Identidade 10:00
- Desabilitando rastreamento de consultas 4:00
- Consulta projeta e rastreada 5:00
- Consultas Projetas 8:00
Migrations
- Introdução 2:00
- Migrações 2:00
- Dependências necessárias para criar uma migração 9:00
- Gerando uma migração 5:00
- Analisando arquivos da migração 5:00
- Gerando script SQL 4:00
- Gerando script SQL idempotente 5:00
- Aplicando migração no banco de dados 7:00
- Desfazendo migrações 9:00
- Migrações pendentes 5:00
- Engenharia reversa 11:00
Acessando outros bancos de dados
- Introdução 1:00
- Provider PostgreSQL 10:00
- Provider SQLite 6:00
- Provider InMemory 4:00
- Provider Azure Cosmos DB 8:00
Aplicação MultiTenant
- Introdução 1:00
- Arquitetura Multi-tenant 2:00
- Single-tenant vs Multi-tenant 8:00
- Estratégias Multi-tenant 6:00
- Criando o projeto 4:00
- Instalando dependências 3:00
- Preparando o ambiente 12:00
- Estratégia 1 - Identificar na tabela 15:00
- Estratégia 2 - Schema 22:00
- Estratégia 3 - Banco de dados 15:00
Padrão Repository & UoW
- Introdução 1:00
- O que é Repository Pattern? 4:00
- O que é Unit-Of-Work? 4:00
- DbContext já é um padrão Repository & UoW 5:00
- Preparando o Ambiente 10:00
- Implementando Repository Pattern 17:00
- Implementando Persistência na API 8:00
- Implementando UoW - Estratégia I 7:00
- Implementando UoW - Estratégia II 6:00
- Criando um Repositório Genérico 22:00
- Consulta com Repositório Genérico 4:00
Dicas e Truques
- Introdução 2:00
- Preparando o ambiente 8:00
- Método ToQueryString 6:00
- Análise com DebugView 5:00
- Redefinindo o estado do contexto 3:00
- Include com consultas filtradas 3:00
- SingleOrDefault vs FirstOrDefault 8:00
- Tabela sem chave primária 5:00
- Usando Views de seu banco de dados 8:00
- Forçando o uso do VARCHAR 5:00
- Aplicando conversão de nomenclatura 6:00
- Operadores de agregação 6:00
- Operadores de agregação no agrupamento 3:00
- Contadores de eventos 7:00
Testes
- Introdução 1:00
- Preparando o ambiente 4:00
- Criando entidade e contexto 3:00
- Criando testes usando o provider InMemory 14:00
- Criando testes usando o provider SQLite 11:00
Sobrescrevendo comportamentos do EF Core
- Introdução 1:00
- Preparando o ambiente 3:00
- Criando entidade e contexto 4:00
- Gerador SQL customizado 8:00
- Criando factory do gerador SQL 6:00
- Usando o gerador SQL customizado 3:00
Diagnostics
- Introdução 1:00
- O que é Diagnostic Source? 2:00
- Criando um interceptador 7:00
- Criando um listener 3:00
- Assinando o listener e validando 4:00
Encerramento
- Agradecimentos 1:00
A Microsoft revolucionou o desenvolvimento de aplicações com o .NET Core e reescreveu do zero o Entity Framework na versão Core, que está muito mais poderoso e performático.
Neste curso você vai aprender todos as funcionalidades, técnicas e abordagens para dominar por completo o Entity Framework Core, é um guia definitivo para você se tornar um especialista neste poderoso ORM
Este curso utiliza a versão mais nova do .NET Core (5.0)
Perguntas frequentes
Por quanto tempo terei acesso?
Estamos oferecendo 1 ano de acesso para você ter muito tempo para estudar.
O curso é teórico e prático?
Sim, o curso Dominando o Entity Framework Core aborda toda a teoria que depois é colocada em prática durante o desenvolvimento da aplicação no decorrer do curso.
Como eu tiro as minhas dúvidas durante o curso?
Basta postar sua dúvida no fórum! Abaixo de cada aula existe um fórum onde o instrutor irá lhe ajudar.
Posso assistir o curso por tablet ou smartphone?
Sim, qualquer dispositivo é suportado.
Rafael Almeida
Rafael Almeida é Microsoft MVP, arquiteto e desenvolvedor de software, palestrante, instrutor e contribuidor de projetos open source, dentre eles o Entity Framework Core.
Casado, pai da Eduarda e Heloysa, autodidata, apaixonado por tecnologia, em especial arquitetura de software e acesso a dados.
Tem mais 14 anos de experiência com desenvolvimento de software. Já trabalhou em muitos projetos de desenvolvimento de software, com foco especial em .NET, design/desenvolvimento de banco de dados.
Apaixonado por projetos de código aberto, devops, arquitetura de microsserviços, transformação digital e acesso a dados de alto desempenho, é um curioso da tecnologia blockchain.
Adora compartilhar conhecimento e aprender novas tecnologias. Sempre focando em resolver problemas e ajudar as pessoas.
Sua stack de paixões são:
.NET, Apache Kafka, Entity Framework Core, gRPC, PostgreSQL, ScyllaDB (seu caçula) e acesso a dados de alta performance.
Dominando o Entity Framework Core
Um guia definitivo para você dominar por completo este poderoso ORM