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

232
Visualizações
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 à 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