Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Carga de livros.json utilizando a classe Produto

Estou replicando os passos executados na aula 04.03 (Lendo Arquivo Json de Produtos), e tentei fazer a lista utilizando a classe Produto, ao invés de criar uma classe Livro.

A lista é criada com todos os itens, mas todos eles estão com seus atributos "null". Gostaria de entender porque isso acontece.

Classe Produto

namespace CasaDoCodigo.Models
{
    [DataContract]
    public class BaseModel
    {
        [DataMember]
        public int Id { get; protected set; }
    }

    public class Produto : BaseModel
    {
        public Produto()
        {

        }

        [Required]
        public string Codigo { get; private set; }
        [Required]
        public string Nome { get; private set; }
        [Required]
        public decimal Preco { get; private set; }

        public Produto(string codigo, string nome, decimal preco)
        {
            this.Codigo = codigo;
            this.Nome = nome;
            this.Preco = preco;
        }
    }

Classe Livro

    class Livro
    {
        public string Codigo { get; set; }
        public string Nome { get; set; }
        public decimal Preco { get; set; }
    }

O trecho ficou:

public void InicializaDB()
        {
            contexto.Database.EnsureCreated();

            var json = File.ReadAllText("livros.json");
            var livros = JsonConvert.DeserializeObject<List<Produto>>(json);
        }
1 resposta
solução!

Olá Janaína!

A função da classe Livro é de transporte de dados para o arquivo json. O problema de usar a classe Produto é que no arquivo livros.json não tem valor para Id, que esse é criado pelo EF Core. Acredito que seja isso que fez ocorrer o problema.

Mas tem como disponibilizar seu projeto inteiro para podermos analisar?

No aguardo!