Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como exibir dados de uma tabela com relacionamentos

Estou fazendo um projeto de biblioteca para treinar, queria saber como faco para exibir os dados de um emprestimo na view, vou deixar meu codigo abaixo que esta com erro pois nao consegue pegar o livro. Model

 public class Emprestimos
    {
        public int Id { get; set; }
        public Livros Livro { get; set; }
        public Usuarios Usuario { get; set; }
        public DateTime DataEmprestimo { get; set; }
        public DateTime DataDevolucao { get; set; }

        public Emprestimos()
        {

        }

        public Emprestimos(int id, Livros livro, Usuarios usuario, DateTime dataEmprestimo, DateTime dataDevolucao)
        {
            this.Id = id;
            this.Livro = livro;
            this.Usuario = usuario;
            this.DataEmprestimo = dataEmprestimo;
            this.DataDevolucao = dataDevolucao;
        }

        public Emprestimos(Livros livro, Usuarios usuario, DateTime dataEmprestimo, DateTime dataDevolucao)
        {
            this.Livro = livro;
            this.Usuario = usuario;
            this.DataEmprestimo = dataEmprestimo;
            this.DataDevolucao = dataDevolucao;
        }

Controller

        public IActionResult Lista()
        {
            List<Emprestimos> emprestimos = _dataService.GetEmprestimos();
            return View(emprestimos);
        }

DataService

        public List<Emprestimos> GetEmprestimos()
        {
            return this._contexto.Emprestimos.Include(e => e.Livro).ToList();
        }

View

@model List<Library.Models.Emprestimos>
  @foreach (var item in Model)
               {
                <tr>
                    <td>@item.Livro.Nome</td>
                    <td>@item.DataEmprestimo</td>
                    <td>@item.DataDevolucao</td>
                    <th><button type="submit" class="btn btn-primary">Editar</button></th>
                    <th><button type="submit" class="btn btn-danger">Excluir</button></th>
                </tr>

               }

Erro retornado: "NullReferenceException: Object reference not set to an instance of an object. @item.Livro.Nome"

2 respostas
solução!

Olá Lucas,

a única coisa que consegui notar deste código é que, como a propriedade Livro não está anotada como [Required] na classe Empretimo, isso permite que ela seja salva como nula no banco. Chegou a olhar direto no seu banco de dados tem algum empréstimo sem livro? Porque isso explicaria a causa deste NullReference.

Era isso mesmo, se puder me ajudar nessa outra duvida https://cursos.alura.com.br/forum/topico-form-de-uma-tabela-relacional-44136 agradeco Lucas. Valeu.