Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Estrutura de entidade mestre:50 principais perguntas e respostas da entrevista (2026)




Preparar-se para uma entrevista do Entity Framework significa antecipar as perguntas que revelam a capacidade real. As perguntas da entrevista do Entity Framework revelam pensamento, consciência de desempenho e como os candidatos traduzem conceitos em prática.

Dominar o Entity Framework abre funções em todo o desenvolvimento moderno, desde plataformas baseadas em dados até serviços em nuvem. A exposição prática desenvolve capacidade analítica, fortalece a profundidade técnica e apoia as equipes. A contratação de líderes valoriza a resolução prática de problemas, o design escalonável, a orientação de juniores e os caminhos de crescimento para recém-formados.
Leia mais…
👉 Download gratuito de PDF:Perguntas e respostas da entrevista do Entity Framework

1) O que é Entity Framework e por que é usado?


Entity Framework (EF) é a estrutura ORM (Mapeamento Objeto-Relacional) da Microsoft para .NET que simplifica a interação com o banco de dados, permitindo que os desenvolvedores trabalhem com dados como objetos .NET fortemente tipados em vez de SQL bruto . Essa abstração permite que os desenvolvedores executem operações CRUD (Criar, Ler, Atualizar, Excluir) usando construções C# familiares, e a estrutura lida com a tradução dessas operações em consultas SQL otimizadas nos bastidores. O EF reduz o código clichê de acesso a dados, melhora a capacidade de manutenção e ajuda a reforçar a segurança do tipo em tempo de compilação.

Por exemplo, em vez de escrever SQL, você pode usar:
07 
A EF traduzirá esta consulta LINQ em SQL, executará-a no banco de dados e retornará os resultados como objetos.

2) Explique a diferença entre as abordagens Code First, Database First e Model First.


O Entity Framework oferece suporte a três abordagens principais de desenvolvimento:
Abordagem Quando usar O que acontece Codifique primeiro Novos projetos ou design orientado a domínio Você define classes de entidade. EF gera o esquema do banco de dados a partir do código.Database First O banco de dadosEF existente gera classes de entidade e contexto a partir de um esquema existente.Modele primeiro Quando você prefere design visualVocê projeta o modelo em um designer visual (Entity Designer) e o EF gera as classes e o banco de dados.
Cada abordagem atende a cenários diferentes:Code First é popular no desenvolvimento ágil, Database First é preferido com bancos de dados legados e Modelar primeiro atende casos onde a modelagem visual é importante.

3) O que é DbContext e qual o papel que ele desempenha no EF?


09 é a classe primária que gerencia a sessão com o banco de dados , rastreia alterações de entidade e coordena o salvamento de dados no banco de dados. Ele representa uma ponte entre seu aplicativo C# e o banco de dados. Até 18 , você define 29 propriedades, que representam coleções de entidades e mapeiam para tabelas no banco de dados.

Exemplo:
17 
Aqui, 36 atua como uma coleção para realizar operações CRUD. EF usa esse contexto para rastrear estados de objetos e gerar comandos SQL em 45 .

4) O que são migrações no Entity Framework e como elas são usadas?


Migrações são um mecanismo para rastrear e aplicar alterações de esquema ao banco de dados ao longo do tempo. À medida que o seu modelo evolui, as migrações ajudam a manter o banco de dados sincronizado sem modificar manualmente os scripts SQL. Com o Code First, você usa comandos como:
24 
Isso gera classes de migração que definem alterações de esquema e as aplicam ao banco de dados. As migrações permitem o controle de versão do esquema do banco de dados e facilitam o desenvolvimento colaborativo.

5) Descreva o carregamento lento, o carregamento rápido e o carregamento explícito.


Carregar dados relacionados de forma eficiente é fundamental na EF. Aqui está uma comparação:
Estratégia Quando é executado Uso Típico Carregamento lento Dados relacionados carregados no primeiro acessoUse quando os dados relacionados nem sempre forem necessários.Carregamento rápido Dados relacionados carregados antecipadamente via 56 Use quando você sabe que precisa de dados relacionados.Carregamento explícito Carregado manualmente após consultaDá controle sobre exatamente quando os dados relacionados são carregados.
Por exemplo:
38 
O carregamento lento ajuda a reduzir as consultas iniciais, mas pode causar N+1 problemas de consulta se não for usado com cuidado.

6) O que é controle de alterações no Entity Framework?


O rastreamento de alterações é o mecanismo interno da EF para monitorar alterações no estado da entidade depois que uma consulta é executada. Quando uma entidade é recuperada por 62 , ele é rastreado. Quaisquer modificações em suas propriedades são anotadas e quando 75 é chamado, o EF gera o SQL 85 apropriado , 98 ou 108 declarações. Para cenários somente leitura em que o rastreamento é desnecessário, 119 melhora o desempenho desativando o rastreamento de alterações.

7) Como o Entity Framework lida com conflitos de simultaneidade?


O controle de simultaneidade garante que vários usuários que atualizam os mesmos dados não substituam involuntariamente as alterações uns dos outros. EF usa simultaneidade otimista por padrão. Uma abordagem comum envolve adicionar um token de simultaneidade (como um 127 carimbo de data/hora). EF verifica esse token durante 132 , e se for diferente da versão do banco de dados, um 145 é lançado, indicando um conflito. Os desenvolvedores podem então lidar com essa exceção para tentar novamente ou resolver diferenças de dados.

8) O que são propriedades de navegação no EF?


As propriedades de navegação definem relacionamentos entre entidades. Eles permitem que a EF navegue pelas associações (por exemplo, um para muitos) sem junções manuais:
47 
Aqui, 154 é uma propriedade de navegação vinculando 161 ao seu 177 relacionado . O EF usa essas propriedades para construir relacionamentos e junções automaticamente durante as consultas. As propriedades de navegação funcionam junto com chaves estrangeiras para modelar relacionamentos.

9) Qual é o propósito de AsNoTracking()?


188 desativa o controle de alterações para uma consulta, o que é benéfico para somente leitura operações onde você não pretende atualizar as entidades recuperadas. Isso melhora o desempenho, reduzindo o uso de memória e controlando a sobrecarga. É especialmente útil ao buscar grandes conjuntos de dados sem modificá-los.

10) O que são consultas compiladas e quando você deve usá-las?


Consultas compiladas são uma técnica de otimização de desempenho. Quando uma consulta LINQ é executada, o EF normalmente a traduz em SQL todas as vezes. Com consultas compiladas, essa tradução é feita uma vez e o delegado resultante é reutilizado — reduzindo a sobrecarga para consultas complexas ou executadas com frequência. Use-os em muito tráfego cenários em que a mesma consulta é executada repetidamente com parâmetros diferentes.

11) O que são estados de entidade no Entity Framework e como eles afetam SaveChanges()?


O Entity Framework rastreia o estado de cada entidade para determinar qual operação de banco de dados executar durante 192 . Os principais estados da entidade são:
Estado Descrição Operação acionada Adicionado Nova entidade a ser inserida207 Modificado Entidade existente atualizada218 Excluído Entidade marcada para remoção221 Inalterado Nenhuma alteração detectadaNenhumaDesanexada Não rastreado por contextNone
Quando você liga para 233 , o EF inspeciona os estados da entidade e executa os comandos SQL correspondentes. Por exemplo, uma nova entidade adicionada a um 247 será marcado como Adicionado , resultando em um 259 consulta.

Exemplo:
55 
Isso atualiza explicitamente o registro do banco de dados da entidade.

Compreender os estados garante melhor controle sobre sincronização e desempenho de dados.

12) Quais são as vantagens e desvantagens de usar o Entity Framework?


O Entity Framework oferece grandes benefícios, mas também algumas compensações, dependendo do seu caso de uso.
Vantagens Desvantagens Simplifica o acesso a dados por meio de LINQ e modelos de objeto. Sobrecarga de desempenho em comparação com ADO.NET bruto. Reduz o código SQL clichê. Consultas complexas podem gerar SQL ineficiente. Suporta vários provedores de banco de dados.
Para sistemas de grande escala que exigem desempenho máximo, os desenvolvedores ainda podem misturar SQL bruto com EF para otimização.

13) Como o Entity Framework lida com relacionamentos (um para um, um para muitos, muitos para muitos)?


O Entity Framework gerencia relacionamentos por meio de propriedades de navegação e associações-chave estrangeiras .

Os tipos de relacionamentos são:
Tipo de relacionamento Descrição Exemplo Um para um Cada instância de entidade possui uma entidade relacionada.267274 Um para muitos Uma entidade está relacionada a várias outras.289294 Muitos para muitos Várias entidades se relacionam entre si.303319
Exemplo de um para muitos relacionamento:
67 
O EF gera automaticamente chaves estrangeiras e lida com regras de exclusão em cascata dependendo da configuração.

Você também pode usar a API Fluent para mapeamento de relacionamento mais explícito.

14) Qual é a diferença entre LINQ to Entities e LINQ to SQL?

Recurso LINQ para entidades LINQ para SQL Bancos de dados suportadosVários (SQL Server, Oracle, MySQL, etc.)Somente SQL ServerFramework subjacenteEntity FrameworkADO.NETModelModelo de entidade conceitualApenas tabelas de banco de dadosMapeamentoMapeamento complexo (herança, associações)Mapeamento direto de tabelaSuporte futuroSuportado ativamenteObsoleto
LINQ para entidades faz parte do Entity Framework e é mais versátil, enquanto LINQ to SQL está limitado ao SQL Server e a casos de uso mais simples.

Portanto, o LINQ to Entities é recomendado para desenvolvimento em nível empresarial.

15) Qual é a diferença entre ObjectContext e DbContext?

Recurso ObjectContext DbContext FrameworkVersões anteriores do EFAPI simplificada no EF 4.1+ComplexidadeMais detalhadoLeve e fácilDesempenhoUm pouco mais rápido, mas mais difícil de usarSimplificado com sobrecarga mínimaRastreamento de alteraçõesConfiguração manual necessáriaRastreamento automáticoUso preferencialSistemas legadosProjetos EF/EF Core modernos
325 envolve internamente 339 mas fornece uma API mais limpa e intuitiva. A maioria dos aplicativos .NET atuais devem usar 346 .

16) Explique o ciclo de vida de uma entidade no Entity Framework.


O ciclo de vida de uma entidade descreve suas transições de estado da criação à persistência:
  1. Criação – A entidade é instanciada na memória (estado:Detached ).
  2. Anexo – Adicionado ao contexto via 357 (estado:Adicionado ).
  3. Modificação – Alterações detectadas automaticamente (estado:Modificado ).
  4. Persistência362 chamado → comandos SQL executados.
  5. Exclusão – Entidade marcada como Excluída e removido do banco de dados.

Compreender esse ciclo de vida ajuda a depurar problemas de dados e a otimizar o gerenciamento de contexto do EF.

17) Qual é o uso da API Fluent no Entity Framework?


A API Fluente fornece uma maneira programática de configurar relacionamentos, restrições e mapeamentos de modelo, frequentemente usados no 377 método do seu 389 .

Ele oferece controle refinado sobre as configurações que anotações de dados não consegue expressar.

Exemplo:
79 
A API Fluent é particularmente poderosa para configurar chaves compostas , relações muitos-para-muitos e regras em cascata .

18) O que são anotações de dados no Entity Framework?


Anotações de dados são atributos aplicado diretamente às classes ou propriedades do modelo para definir o comportamento do esquema. Eles são mais simples que o Fluent API, mas menos flexíveis.

Exemplo:
86 
As anotações definem chaves, comprimentos de string, campos obrigatórios e relacionamentos. Para casos avançados, os desenvolvedores geralmente combinam anotações de dados e API Fluente .

19) Qual é a diferença entre entidades rastreadas e não rastreadas no EF Core?

Tipo Descrição Caso de uso Entidades rastreadas Monitorado por 398 para alterações. Comportamento padrão para atualizações.Entidades não rastreadas Não monitorado; recuperado com 401 .Ideal para operações somente leitura.
As entidades rastreadas consomem mais memória, mas permitem que o EF detecte alterações automaticamente.

Entidades não rastreadas melhoram o desempenho em cenários de alta leitura e baixa atualização.

20) Como você pode executar consultas SQL brutas no Entity Framework?


O Entity Framework permite a execução de SQL bruto para consultas personalizadas ou de desempenho crítico.
96 
Para comandos que não sejam de consulta:
104 
Use esse recurso com cuidado para evitar a injeção de SQL e manter a flexibilidade independente do banco de dados.

21) Qual é a diferença entre Entity Framework e Entity Framework Core?


Entity Framework (EF) e Entity Framework Core (EF Core) diferem em arquitetura, recursos e suporte multiplataforma.
Recurso Entity Framework 6 (EF6) Núcleo do Entity Framework Plataforma.NET Framework apenasPlataforma cruzada (.NET 5/6/7)ArquiteturaBaseada em ObjectContextLeve e modularDesempenhoMais lento em algumas consultasGeração de consulta otimizadaSuporte LINQMaturidade, mas limitadaTradução aprimorada e assíncronaProvedores de banco de dadosSQL Server, OracleMúltiplos (MySQL, PostgreSQL, SQLite, etc.)RecursosMaturidade (por exemplo, carregamento lento)Moderno (por exemplo, propriedades de sombra, global filtros)
EF Core é o moderno e ativamente desenvolvido versão e a escolha recomendada para novos projetos .NET devido à sua flexibilidade e desempenho.

22) Como funcionam as transações no Entity Framework?


As transações no Entity Framework garantem a integridade dos dados quando várias operações devem ser bem-sucedidas ou falharem juntas. Por padrão, o EF encapsula 411 dentro de uma transação. Para controle manual:
111 
Isso garante a atomicidade — se algum comando falhar, todas as alterações serão revertidas.

EF também se integra com System.Transactions para suporte a transações distribuídas.

23) Explique as estratégias de herança TPH, TPT e TPC no Entity Framework.


O Entity Framework oferece suporte a três estratégias principais de mapeamento de herança para modelar hierarquias de classes.
Estratégia Descrição Exemplo Vantagens Desvantagens TPH (tabela por hierarquia) Todas as turmas compartilham uma mesa; uma coluna discriminadora identifica o tipo.Comum no EF Core.Consultas simples e rápidas.A tabela pode se tornar grande e esparsa.TPT (tabela por tipo) Cada subclasse tem sua própria tabela. Cada classe derivada é mapeada separadamente. Esquema normalizado. Junções mais lentas em hierarquias grandes.TPC (Tabela por classe concreta) Cada classe possui sua própria tabela com colunas duplicadas.Cada entidade mapeada separadamente.Leituras de alto desempenho.Redundância de dados.
A maioria dos desenvolvedores prefere TPH por sua simplicidade, a menos que as necessidades de normalização ou desempenho ditem o contrário.

24) Como você lida com o ajuste de desempenho no Entity Framework?


Para otimizar o desempenho do Entity Framework:
  1. Usar 425 para consultas somente leitura.
  2. Carga rápida apenas entidades relacionadas necessárias com 439 .
  3. Evite consultas N+1 usando projeções ou 444 .
  4. Use consultas compiladas para operações executadas com frequência.
  5. Várias inserções/atualizações em lote com 452 e 462 .
  6. Desativar alterações automáticas de detecção para operações em massa:474
  7. Usar cache e paginação para grandes conjuntos de dados.

Uma implementação EF bem ajustada pode aproximar-se do desempenho do ADO.NET e, ao mesmo tempo, manter a produtividade do desenvolvedor.

25) O que é uma propriedade shadow no Entity Framework Core?


Uma propriedade de sombra existe no modelo EF, mas não na classe de entidade. Ele é mantido pela EF no rastreador de alterações e armazenado no banco de dados.

Exemplo:
126 
Isso permite que o EF armazene metadados extras (por exemplo, carimbos de data/hora, informações de auditoria) sem modificar a classe da entidade.

Você pode acessar as propriedades de sombra por meio de:
130 
As propriedades de sombra são ideais para cenários de registro ou auditoria.

26) O que são conversores de valor no EF Core?


Os conversores de valor no EF Core permitem a transformação de valores de propriedade ao ler ou gravar no banco de dados.

Por exemplo, para armazenar um enum como uma string:
143 
Isso aumenta a flexibilidade para tipos de dados personalizados, como 487 , 490 ou 504 .

Conversores de valor também são usados para criptografia, compactação ou mascaramento de dados sensíveis.

27) O que são filtros de consulta globais e como funcionam?


Os filtros de consulta global permitem aplicar condições automaticamente a todas as consultas de uma entidade.

Isso é especialmente útil para exclusões reversíveis ou multilocação .

Exemplo:
156 
Cada consulta executada em 512 exclui automaticamente registros excluídos de forma reversível, a menos que sejam explicitamente substituídos.

Os filtros globais melhoram a capacidade de manutenção e a segurança dos dados.

28) Como você pode testar o código do Entity Framework usando testes de unidade?


Para testar a lógica do EF sem atingir um banco de dados real, use bancos de dados na memória ou zombar :
  • Opção 1:provedor InMemory
    162 
  • Opção 2:DbContext simulado
    Simulação 524 usando bibliotecas como Moq para testes isolados.

Os testes unitários devem validar:
  • Correção da consulta (via LINQ)
  • Consistência de dados após 538
  • Lógica do repositório

Testar com EF Core InMemory garante velocidade e evita dependências do SQL Server.

29) Explique os padrões de repositório e unidade de trabalho no EF.


Esses dois padrões de arquitetura ajudam a acessar dados abstratos e manter a consistência transacional .
Padrão Propósito Exemplo de implementação Repositório Encapsula operações CRUD para cada entidade.547 interface com 553 , 563 , etc.Unidade de Trabalho Coordena vários repositórios em uma transação.579 atua como um limite de commit.
Exemplo:
175 
Esses padrões melhoram a testabilidade , reutilização de código e separação de preocupações em aplicações empresariais de grande porte.

30) Qual é a diferença entre carregamento antecipado e carregamento de projeção?

Aspecto Carregamento ansioso Carregamento da projeção PurposeCarrega dados relacionados antecipadamenteCarrega apenas campos ou propriedades específicasMethod583 594 Exemplo606 614 DesempenhoBusca objetos completosBusca dados mínimosCaso de usoQuando entidades relacionadas são necessárias para processamentoQuando você precisa de dados leves específicos
O carregamento da projeção é uma otimização de desempenho que reduz a sobrecarga de memória selecionando apenas as colunas necessárias.

31) O que são interceptadores no Entity Framework Core?


Os interceptadores no EF Core permitem que os desenvolvedores interceptem e modifiquem operações de banco de dados, como execução de consultas, criação de comandos e abertura de conexão .

Eles atuam como componentes de middleware entre o EF e o provedor do banco de dados.

Exemplo: Registrando todos os comandos SQL executados.
183 
Você registra no 620 :
194 
Benefícios:
  • Registro aprimorado
  • Segurança (validação de consulta)
  • Auditoria e acompanhamento de desempenho

32) Como o EF Core lida com operações assíncronas?


O Entity Framework Core oferece suporte total à programação assíncrona através de métodos como 632 , 642 e 652 .

A execução assíncrona ajuda a melhorar a escalabilidade em aplicativos da web, liberando threads enquanto aguarda operações de banco de dados vinculadas a E/S.

Exemplo:
209 
As operações assíncronas são particularmente eficazes em APIs ASP.NET Core de alto rendimento e microsserviços, reduzindo o bloqueio de chamadas e melhorando os tempos de resposta.

33) O que é resiliência de conexão no Entity Framework Core?


A resiliência da conexão ajuda seu aplicativo a se recuperar automaticamente de falhas transitórias no banco de dados , como interrupções de rede ou tempos limite de SQL.

Pode ser configurado da seguinte forma:
216 
Aqui, o EF tentará novamente as operações com falha até 5 vezes com atrasos.

Isto é particularmente útil em ambientes hospedados em nuvem como o Azure SQL, onde falhas transitórias são comuns.

34) O que são tipos de entidades próprias no EF Core?


Entidades próprias permitem modelar objetos de valor que dependem inteiramente do ciclo de vida de outra entidade.

Eles compartilham a mesma mesa que seu proprietário e não podem existir de forma independente.

Exemplo:
226 
Configuração:
235 
Caso de uso:

Conceitos de modelagem como Endereço , Dinheiro ou Medição que não têm identidade própria.

35) Como você pode implementar exclusões reversíveis no Entity Framework Core?


As exclusões suaves marcam os registros como excluídos em vez de removê-los fisicamente.

Eles são implementados usando um sinalizador booleano e filtros de consulta global .
248 
Na operação de exclusão:
258 
Vantagens:
  • Preservação de dados históricos
  • Recuperação mais fácil

Desvantagens:
  • Tabelas de banco de dados maiores
  • Requer uma lógica de filtragem cuidadosa

36) O que é modelo compilado no EF Core e por que ele é usado?


No EF Core 6+, modelos compilados permitem a pré-compilação dos metadados do modelo EF em um assembly .NET, reduzindo o tempo de inicialização e a sobrecarga de tempo de execução.

Etapas:
  1. Execute o comando:662
  2. O EF gera um arquivo de modelo pré-compilado que o aplicativo carrega mais rapidamente em tempo de execução.

Benefício: Reduz a latência de inicialização em 30 a 40%, especialmente em aplicativos grandes com muitas entidades.

Caso de uso: Microsserviços de alto desempenho e ambientes sem servidor.

37) Como você pode implementar o cache no Entity Framework?


O cache ajuda a reduzir consultas repetitivas ao banco de dados. Existem dois níveis principais:
Tipo Descrição Exemplo Cache de primeiro nível Integrado, conforme 677 instânciaGerenciado automaticamenteCache de segundo nível Cache externo compartilhado entre contextos Use bibliotecas como 688
Exemplo de cache de segundo nível:
262 
Isso melhora significativamente o desempenho em aplicativos com muita leitura evitando acessos redundantes ao banco de dados.

38) Como o EF Core gerencia tokens de simultaneidade e carimbos de data/hora?


Os tokens de simultaneidade evitam atualizações conflitantes em ambientes multiusuário.

Você pode marcar uma propriedade como um token de simultaneidade usando o 690 ou 705 atributo.

Exemplo:
276 
Quando ocorre uma atualização, o EF inclui esta coluna no 718 cláusula.

Se o valor não corresponder, um 728 é lançado — garantindo controle de simultaneidade otimista .

39) Como você implementa auditoria (rastreamento criado, modificado, excluído) no EF Core?


A auditoria rastreia metadados como quem criou, modificou ou excluiu registros.

Você pode substituir 731 :
281 
Interface:
292 
Este método centraliza a lógica de auditoria, garantindo uma governança de dados consistente .

40) Quais são as práticas recomendadas para usar o Entity Framework em aplicativos corporativos?

Categoria Melhores práticas Benefício Desempenho Utilize 742 e projeções para consultas somente leitura. Reduz a sobrecarga.Design Implemente padrões de repositório e unidade de trabalho. Melhora a capacidade de manutenção.Segurança Use consultas parametrizadas para evitar injeção de SQL.Proteção de dados.Escalabilidade Use pool de conexões e métodos assíncronos. Lida com alta carga.Migrações Use migrações automatizadas com controle de versão. Simplifica o gerenciamento de esquemas.Configuração Exteriorize strings de conexão e segredos. Melhor isolamento do ambiente.Testes Use o provedor InMemory para testes de unidade. Execuções de testes mais rápidas.Registro Habilite o log do EF para obter insights de desempenho. Depuração mais fácil.
Essas práticas garantem uma solução robusta, escalável e de fácil manutenção aplicativos construídos em Entity Framework.

41) Como você pode otimizar consultas LINQ para obter uma melhor tradução de SQL no Entity Framework?


O Entity Framework converte automaticamente consultas LINQ em SQL, mas padrões ineficientes podem produzir SQL lento ou redundante. A otimização do LINQ garante que o ORM gere consultas de banco de dados de alto desempenho.

Técnicas de otimização:


Usar projeções:
  1. Selecione apenas as colunas obrigatórias em vez de entidades inteiras.
301 Evite avaliação do lado do cliente: 
Sempre garanta que a filtragem aconteça no SQL , não na memória. O EF Core avisa quando a avaliação é do lado do cliente.Use 752 para dados somente leitura.
313
Aproveitar consultas compiladas para operações LINQ repetidas.Evite 761 desnecessário chamadas — inclua apenas dados relacionados quando necessário.
Exemplo:

Ineficiente:
324 
Eficiente:
337 

42) Quais são as diferentes maneiras de propagar dados iniciais no EF Core?


A propagação de dados garante que o banco de dados tenha dados padrão ou de referência quando criado.

Abordagem 1:Usando ModelBuilder
341 
Isso insere dados automaticamente durante 775 .

Abordagem 2:método de semente personalizado

Execute o código manualmente na inicialização:
351 
Abordagem 3:Scripts SQL

Use SQL bruto em migrações:
363 
Recomendação:
Utilize 788 para dados de referência estáticos e propagação programática para dados de inicialização dinâmicos.

43) Como o EF Core gerencia provedores de banco de dados internamente?


O EF Core é independente de provedor , o que significa que ele pode ter como alvo vários mecanismos de banco de dados por meio de pacotes de provedores de banco de dados separados .

Provedores Comuns:
Provedor Pacote NuGet Banco de dados SQL Server797 MSSQLSQLite804 Móvel/DesktopPostgreSQL810 PostgreSQLMySQL821 MySQLCosmos DB835 NoSQL
Internamente, o EF Core usa camadas de abstração para:
  • Tradução de consulta
  • Geração de comando SQL
  • Mapeamento de tipo de dados

Cada provedor implementa suas próprias classes herdadas das abstrações básicas do EF Core (por exemplo, 840 , 851 ).

44) O que é uma “consulta dividida” e quando você deve usá-la?


Consultas divididas evitam que o EF realize junções grandes e complexas executando várias consultas SQL em vez de uma.

Exemplo:
375 
Isso executa:
  1. Consulta 1 → Obter clientes
  2. Consulta 2 → Obtenha pedidos relacionados a esses clientes

Benefícios:
  • Evita grandes produtos cartesianos.
  • Melhora o desempenho com grandes conjuntos de dados relacionados.

Desvantagem:

Várias viagens de ida e volta ao banco de dados.

Use consultas divididas ao carregar grandes dados relacionados que podem causar problemas de memória.

45) Como você pode monitorar comandos SQL gerados pelo EF de forma eficaz?


O monitoramento do SQL ajuda a depurar consultas lentas e otimizar o comportamento do ORM.

Métodos para registrar SQL:

  1. Registro do console
384 Integração ILoggerFactory 
390 Interceptores Implementar 864 para capturar comandos e tempos.Ferramentas de criação de perfil Use ferramentas como:
  • MiniProfiler
  • Criador de perfil do SQL Server
  • EFCorePowerTools

O registro deve ser ativado seletivamente na produção para evitar sobrecarga de desempenho.

46) Qual é a diferença entre ChangeTracker.DetectChanges() e AutoDetectChangesEnabled?

Recurso 873 880 TypeMethodPropertyPurposeForça o EF para verificar entidades rastreadas e detectar alteraçõesAtiva/desativa a detecção automática de alteraçõesDefaultManualTrueUsageChama explicitamente para otimização de desempenhoDesativa para atualizações em massa
Exemplo:
403 
Desativar a detecção automática em loops melhora o desempenho em até 40% em operações em massa.

47) Como você usa tabelas temporais com EF Core?


As tabelas temporais (introduzidas no SQL Server 2016) permitem rastrear dados históricos automaticamente.

Etapas:
  1. Ative o suporte temporal na migração:
416 Consultar dados históricos:
420

Vantagens:
  • Rastreamento de histórico de dados integrado
  • Auditoria e conformidade
  • Não são necessários acionadores manuais

O EF Core 6+ oferece suporte a consultas temporais completas.

48) Como o EF Core suporta consultas compiladas e modelos pré-gerados juntos?


Consultas e modelos compilados são dois recursos de desempenho que se complementam.
Recurso Propósito Consultas compiladasResultados da tradução da consulta de cacheModelos compiladosMetadados do modelo pré-compilado
Exemplo de consulta compilada:
434 
Uso:
443 
Juntos: Modelos compilados reduzem o custo inicial , enquanto as consultas compiladas reduzem a sobrecarga de consulta em tempo de execução — ideal para consultas de alta frequência .

49) Quais são as armadilhas comuns ao usar EF em arquitetura de microsserviços?

Erros comuns:

  1. DbContext compartilhado entre serviços
    → Viola o isolamento de microsserviços.
    → Cada microsserviço deve ter seu próprio DbContext e esquema.
  2. Comunicação conversacional (consultas N+1)
    → Minimize as consultas EF por chamada de API.
  3. Carregamento ansioso excessivo
    → Carregue apenas o que for necessário via DTOs.
  4. Migrações centralizadas
    → Cada serviço deve gerenciar suas próprias migrações de forma independente.
  5. Falta de limites transacionais
    → Use transações distribuídas (padrão Caixa de saída) se for necessária consistência entre serviços.
  6. Acoplamento forte ao provedor SQL
    → Use repository abstraction to keep flexibility in database choice.

50) How does dependency injection integrate with DbContext in ASP.NET Core?


Entity Framework integrates seamlessly with ASP.NET Core’s built-in Dependency Injection (DI) sistema.

Setup:

451

Then inject it into controllers or services:
467

Lifetimes:
Lifetime Descrição Recommended For ScopedOne context per HTTP requestDefaultTransientNew instance every timeBackground jobsSingletonShared globallyAvoid (not thread-safe)
Using DI ensures testability, lifecycle management , and resource efficiency across web and background processes.

🔍 Top Entity Framework Interview Questions with Real-World Scenarios &Strategic Responses

1) What is Entity Framework, and why is it used in enterprise applications?


Expected from candidate: The interviewer wants to assess your foundational understanding of Entity Framework and its value in real-world applications.

Example answer: Entity Framework is an Object-Relational Mapping framework for .NET that allows developers to work with databases using .NET objects instead of raw SQL. It is used in enterprise applications to improve productivity, reduce boilerplate data access code, and maintain a strong separation of concerns.

2) Can you explain the difference between Code First, Database First, and Model First approaches?


Expected from candidate: The interviewer wants to evaluate your knowledge of different development workflows and when to use each one.

Example answer: Code First starts with domain classes and generates the database from code. Database First begins with an existing database and generates entity classes. Model First uses a visual designer to define the model and then creates both code and database. Each approach is chosen based on project requirements and existing infrastructure.

3) How does Entity Framework handle relationships between tables?


Expected from candidate: The interviewer is checking your understanding of data modeling and relational mapping.

Example answer: Entity Framework handles relationships using navigation properties and foreign keys. It supports one-to-one, one-to-many, and many-to-many relationships, allowing developers to traverse related data using object references rather than joins.

4) Describe a situation where you improved database performance using Entity Framework.


Expected from candidate: The interviewer wants to hear a practical example demonstrating optimization skills.

Example answer: In my previous role, I improved performance by reducing unnecessary eager loading and implementing projection queries with Select statements. This minimized the amount of data retrieved from the database and significantly reduced query execution time.

5) How do you manage migrations in Entity Framework?


Expected from candidate: The interviewer is assessing your experience with schema changes and version control.

Example answer: Migrations are managed using the built-in migration tools that track model changes over time. At a previous position, I regularly generated and reviewed migration scripts before applying them to ensure database integrity across environments.

6) What is lazy loading, and when would you avoid using it?


Expected from candidate: The interviewer wants to test your understanding of data loading strategies and performance trade-offs.

Example answer: Lazy loading automatically loads related data when it is accessed. I would avoid using it in performance-critical scenarios or APIs because it can cause multiple unintended database calls, leading to the N+1 query problem.

7) How do you handle transactions in Entity Framework?


Expected from candidate: The interviewer is evaluating your knowledge of data consistency and error handling.

Example answer: Entity Framework supports transactions through the DbContext and TransactionScope. At my previous job, I used explicit transactions to ensure that multiple related database operations either completed successfully together or were rolled back in case of failure.

8) Explain how dependency injection is used with Entity Framework.


Expected from candidate: The interviewer wants to see how well you understand modern application architecture.

Example answer: Dependency injection is used to inject the DbContext into services or controllers. This improves testability and maintainability by allowing the context to be mocked or replaced without changing business logic.

9) Describe a challenging bug you encountered with Entity Framework and how you resolved it.


Expected from candidate: The interviewer is looking for problem-solving ability and debugging skills.

Example answer: In my last role, I encountered an issue with tracking conflicts when updating detached entities. I resolved it by explicitly setting entity states and ensuring that only one instance of each entity was tracked by the context.

10) How do you decide when Entity Framework is not the right tool?


Expected from candidate: The interviewer wants to understand your judgment and ability to choose appropriate technologies.

Example answer: I consider alternatives when applications require extremely high-performance data access or complex stored procedure logic. In such cases, using a micro-ORM or raw ADO.NET can provide more control and efficiency.

Linguagem C

  1. C# Variáveis ​​e Operadores com Exemplo
  2. Funções virtuais C++
  3. C# - Matrizes
  4. Matriz multidimensional C#
  5. Classe abstrata e método C#
  6. C Pré-processador e Macros
  7. Variáveis, literais e constantes de C++
  8. Operadores de incremento e decremento Master C:uso e práticas recomendadas
  9. Tipos de funções definidas pelo usuário na programação C
  10. C Files I/O:Criar, Abrir, Ler, Gravar e Fechar um Arquivo