Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

233
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!