Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

360
Visualizações
Carga perezosa vs carga ansiosa

¿Bajo qué situación podría ser más beneficiosa la carga ansiosa que la carga perezosa?

La carga diferida en Entity Framework es el fenómeno predeterminado que ocurre para cargar y acceder a las entidades relacionadas. Sin embargo, la carga ansiosa se refiere a la práctica de cargar forzadamente todas estas relaciones.

Lo pregunto porque es obvio que la carga diferida es más amigable con los recursos, e incluso si usamos el método ToList() , aún podemos aprovechar el comportamiento de carga diferida.

Sin embargo, pensé que tal vez la carga diferida aumenta la cantidad de solicitudes a la base de datos real y tal vez es por eso que a veces los desarrolladores usan el método Inlcude para forzar la carga de todas las relaciones.

Por ejemplo, cuando se usa el scaffolding automático de Visual Studio en MVC 5, el método Index creado automáticamente en el controlador siempre usa Eager Loading, y siempre me he preguntado por qué Microsoft usa Eager Loading por defecto en ese caso.

Agradecería que alguien me explicara en qué situación sería más beneficiosa la carga ansiosa que la carga diferida, y ¿por qué la usamos si hay algo más amigable con los recursos como la carga diferida?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Creo que es bueno categorizar relaciones como esta.

Cuándo usar la carga ansiosa

  1. En "un lado" de las relaciones de uno a muchos que seguramente se usan en todas partes con la entidad principal. como propiedad de usuario de un artículo. Categoría propiedad de un Producto.
  2. En general, cuando las relaciones no son demasiado y la carga ansiosa será una buena práctica para reducir más consultas en el servidor.

Cuándo usar la carga diferida

  1. Casi en todos los "lados de la colección" de las relaciones de uno a muchos. como Artículos de Usuario o Productos de una Categoría
  2. Sabes exactamente que no necesitarás una propiedad al instante.

Nota: como dijo Transcendent, puede haber un problema de eliminación con la carga diferida.

over 4 years ago · Santiago Trujillo Relatório

0

Carga ansiosa: la carga ansiosa lo ayuda a cargar todas las entidades necesarias a la vez. es decir, los objetos relacionados (objetos secundarios) se cargan automáticamente con su objeto principal.

Cuándo usar:

  1. Use Eager Loading cuando las relaciones no sean demasiado. Por lo tanto, Eager Loading es una buena práctica para reducir más consultas en el servidor.
  2. Utilice Eager Loading cuando esté seguro de que utilizará entidades relacionadas con la entidad principal en todas partes.

Carga diferida: en caso de carga diferida, los objetos relacionados (objetos secundarios) no se cargan automáticamente con su objeto principal hasta que se solicitan. De forma predeterminada, LINQ admite la carga diferida.

Cuándo usar:

  1. Use Lazy Loading cuando esté usando colecciones de uno a muchos.
  2. Utilice Lazy Loading cuando esté seguro de que no está utilizando entidades relacionadas al instante.

NOTA: Entity Framework admite tres formas de cargar datos relacionados: carga ansiosa, carga diferida y carga explícita.

over 4 years ago · Santiago Trujillo Relatório

0

La carga diferida producirá varias llamadas SQL, mientras que la carga ansiosa puede cargar datos con una llamada "más pesada" (con uniones/subconsultas).

Por ejemplo, si hay un ping alto entre su web y los servidores sql, optaría por la carga ansiosa en lugar de cargar los elementos relacionados 1 por 1 con la carga diferida.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda