My resource for learning EFCore
I learned through:
- desenvolvedor.io | Cource author MVP Rafael Almeida
EFCore version 5.0.4
I'm using Linux to developer this tutorial
With Docker:
git clone https://github.com/WerterBonfim/efcore-references.git
cd efcore-references/docker
docker build -t sql-dev .
docker container run --rm --name sql -d -p 1433:1433 sql-dev
- Translate to english
- Migrate to version 5.0.6
- Separate each section into Class Library
- Another resources coming soon.
- 6 - Applaying Migrations
- 7 - Generate Scripts Sql Idempotent
- 8 - Rollback Migrations
- 1 - Insert
- 2 - Read
- 3 - Update
- 4 - Delete
- 1 - Deletando propriedades não configuradas
- 2 - Resiliência da conexão
- 3 - Alterando o nome da tabela de histórico de migrações
- 1 - Ensure Created/Deleted
- 2 - Resolver GAP do Ensure Created
- 3 - HealthCheck do Banco de dados
- 4 - Gerenciar estado da conexão
- 5 - Commandos ExecuteSql
- 6 - Como se proteger de ataques Sql Injection
- 7 - Detectando migraçoes pendentes
- 8 - Forçando uma migração
- 9 - Recuperando migrações existentes em sua aplicação
- 10 - Recuperando migrações aplicadas em seu banco de dados
- 11 - Gerar Script Sql de seu modelo de dados
- 1 - Carregamento Adiantado (Eager)
- 2 - Carregamento Explícito
- 3 - Carregamento Lento (Famoso LazyLoad)
- 1 - Configurando um filtro global
- 2 - Ignorando filtros globais
- 3 - Consultas projetadas
- 4 - Consulta parametrizada
- 5 - Consulta interpolada
- 6 - Usando o recurso TAG em consultas
- 7 - Entendendo diferença em consulta 1xN vs Nx1
- 8 - Divisão de consultas com SplitQuery
- 1 - Criando uma procedure de inserção
- 2 - Executando uma inserção via procedure
- 3 - Criando uma procedure de consulta
- 4 - Executando uma consulta via procedure
- 1 - Configurando log simplificado
- 2 - Filtrado categoria de log
- 3 - Escrevendo log em um arquivo
- 4 - Habilitando erros detalhados
- 5 - Habilitando visualização dos dados sensíveis
- 6 - Configurando o batch size
- 7 - Configurando o timeout do comando global
- 8 - Configurando o timeout para um comando para um fluxo
- 9 - Confgurando resiliência para sua aplicação
- 10 - Criando uma estratégia de resiliência
- 1 - Colletions
- 2 - Sequências
- 3 - Índices
- 4 - Propagação de dados
- 5 - Esquemas
- 6 - Conversor de valores
- 7 - Criar um conversor de valor customizado
- 8 - Propriedades de sombra
- 9 - Owned Types
- 10 - Relacionamento 1 x 1
- 11 - Relacionamento 1 x N
- 12 - Relacionamento N x N
- 13 - Campo de apoio (Backing field)
- 14 - TPH e TPT
- 15 - Sacola de propriedades (Property Bags)
- 1 - Atributo Table
- 2 - Atributo Inverse Property
- 3 - Atributo NotMapped
- 4 - Atributo Database Generated
- 5 - Atributo Index
- 6 - Atributo Comment
- 7 - Atributo Backing Field
- 8 - Atributo Keyless
- 1 - Funções de datas
- 2 - Funções Like
- 3 - Funções DataLenght
- 4 - Funções Property
- 5 - Funções Collate
- 1 - O que são interceptadores de comandos?
- 2 - Criando e registrando um interceptador
- 3 - Sobrescrevendo métodos da classe base
- 4 - Aplicando hint NOLOCK nas consultas
- 5 - Interceptando abertura de conexão com o banco
- 6 - Interceptando alterações.
- 1 - O que é trasação
- 2 - Comportamento padrão do EF Core
- 3 - Gerenciando transação manualmente
- 4 - Revertendo uma transação
- 5 - Salvando ponto de uma transação
- 6 - Usando TransactionScopee
- 1 - O que é UDF
- 2 - Built-In Function
- 3 - Registrando Funções
- 4 - Registrando Funções Via Fluent API
- 5 - Função definada pelo usuário
- 6 - Customizando uma função complexa
- 1 - Tracking vs NoTracking
- 2 - Resolução de identidade
- 3 - Desabilitando rastreamento de consultas
- 4 - Consulta com tipo anônimo rastreada
- 5 - Consultas projetadas
- 1 - Migrações do EF Core
- 2 - O que é necessário para criar uma migração?
- 3 - Gerando uma migração
- 4 - Analisando arquivos da migração
- 5 - Gerando script SQL
- 6 - Gerando script SQL idempotente
- 7 - Aplicando migração no banco de dados
- 8 - Desfazendo uma migração
- 9 - Migrações pendentes
- 10 - Engenharia Reversa
- 1 - PostgreSQL
- 2 - SQLite
- 3 - InMemory
- 4 - Azure Cosmos DB
- 1 - Arquitetura Multi-tenant
- 2 - Single-tenant vs Multi-tenant
- 3 - Estratégias Multi-tenant
- 4 - Criando o projeto
- 5 - Instalando dependências
- 6 - Preparando o ambiente
- 7 - Estratégia 1 - Identificar na tabela
- 8 - Estratégia 2 - Schema
- 9 - Estratégia 3 - Banco de dados
- 1 - O que é Repository Pattern?
- 2 - O que é Unit-of-work?
- 3 - DbContext já é um padrão Repository & Uow
- 4 - Preparando o ambiente
- 5 - Implementando UoW - Estratégia 1
- 6 - Implementando UoW - Estragédia 2
- 7 - Criando um Repositório Genérico
- 8 - Consulta com Repositório Genérico
- 1 - Conhecer o método ToQueryString
- 2 - Depuração com DebugView
- 3 - Redefinir o estado do seu contexto
- 4 - Include com consulta filtrada
- 5 - SingleOrDefault vs FirstOrDefault
- 6 - Tabela sem chave primária
- 7 - Usando Views de seu banco de dados
- 8 - Forçar o uso do VARCHAR
- 9 - Aplicar conversão de nomeclatura
- 10 - Operadores de agregação
- 11 - Operadores de agregação no agrupamento
- 12 - Contadores de eventos
- 1 - Criando testes usando o provider InMemory
- 2 - Criando testes usando o provider SQLit
- 1 - O que é Diagnostic Source?
- 2 - Exemplo