Sobes.tech
Junior — Middle

Em que fase ocorre o carregamento de dados da base de dados para os objetos da aplicação ao usar Entity Framework?

sobes.tech IA

Resposta da IA

No Entity Framework, a carga de dados da base para objetos da aplicação ocorre em tempo de execução, ou seja, ao aceder à base de dados através de consultas LINQ ou métodos do contexto.

Isto é chamado de carregamento preguiçoso (Lazy Loading) ou carregamento ansioso (Eager Loading), dependendo das configurações:

  • Carregamento ansioso (Eager Loading): os dados são carregados imediatamente ao executar a consulta, por exemplo, usando o método Include.
  • Carregamento preguiçoso (Lazy Loading): os dados são carregados na primeira vez que se acede à propriedade de navegação do objeto.

Desta forma, os objetos são criados e preenchidos com dados no momento da execução da consulta à base de dados, e não na declaração ou compilação do código.

Exemplo:

using(var context = new AppDbContext())
{
    var users = context.Users.Include(u => u.Orders).ToList(); // Carregamento ansioso
}

Aqui, os dados das tabelas Users e Orders relacionados são carregados nos objetos imediatamente ao chamar ToList().