Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

226
Vistas
Colección de relaciones de EF Core .Count() vs .Count

Tengo una entidad primaria que contiene una colección de entidades relacionadas (una a muchas). El siguiente es un ejemplo de código simplificado de mi escenario:

 class Secondary {} class Primary { private readonly List<Secondary> _secondaries = new(); public IReadOnlyList<Secondary> Secondaries => _secondaries; }

En mi repositorio de EF, estoy tratando de proyectar Primary en un DTO que contiene una CUENTA de entradas Secundarias en su colección:

 DbContext.Set<Primary>() .AsNoTracking() .Select(primary => new PrimaryDTO{ SecondaryCount = primary.Secondaries.Count // Access the Count property });

Esta consulta produce una excepción: "Referencia de objeto no establecida en una instancia de un objeto". Pero si hago esto en su lugar:

 DbContext.Set<Primary>() .AsNoTracking() .Select(primary => new PrimaryDTO{ SecondaryCount = primary.Secondaries.Count() // Call the Count() method });

La consulta funciona bien. Pero mi IDE dice que debería acceder a la propiedad en lugar de llamar al método, y muestra los paréntesis junto a la llamada Count() en gris, como si fueran redundantes. Si sigo esas instrucciones, mi código se rompe.

¿Cómo puede uno producir una excepción nula mientras que el otro no? Además, ¿cómo pueden ser nulos primary.Secondaries si mi clase lo inicializa como una lista vacía? Para su información, el uso de Include() para cargar la colección relacionada no altera este comportamiento.

over 4 years ago · Santiago Trujillo
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda