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().