.Net core API, não consigo trazer os dados de uma lista one to many no metodo GET

Boa tarde, estou começando a estudar como fazer uma API em .net core, porem fazem 3 dias que estou enroscado nisso e não consigo desenroscar.

Tenho uma classe Pessoa que possui uma lista de Carros, e uma classe Carro onde possuo um campo Pessoa.

Quando eu fizer um metodo get preciso de um retorno dessa maneira:

image

Porem quando eu chamo o metodo ele traz os carros vazios:

image

Segue abaixo o metodo get na classe service, que é onde acredito estar meu erro:

public class PessoasService
{
    private readonly ModeloContext _context;

    public PessoasService(ModeloContext context)
    {
        _context = context;
    }

    public async Task<Pessoa> FindByIdAsync(int id)
    {
        return await _context.Pessoa.FirstOrDefaultAsync(obj => obj.Id == id);
    }
}

Por favor estou começando, acredito ser um erro bem bobo, mas nem achei como resolver. =/

Obrigado desde já!!

1 curtida

Bom dia PehDePano

Teria como vc expor seus dois models aqui no forum, o de Pessoa e o de Carro por favor, para melhor analisarmos

Abraço

Voce pode carregar a lista de Carros direto na sua query, através de Include:

return await _context.Pessoa
                     .Where(p => p.Id == id)
                     .Include(p => p.Carros)
                     .FirstOrDefaultAsync();

Exemplo para ilustrar, como não postou o modelo, se faltar algo adapte ao seu projeto.

Nao tem haver com o tópico, mas sobre convenções de nomenclatura ao invés de _context, seria context.

2 curtidas