Não entendi muito bem porque esta sendo usado o context com Set:
context.Set<Produto>().ToList();
não posso usar assim:
context.Produto.ToList()
?
Não entendi muito bem porque esta sendo usado o context com Set:
context.Set<Produto>().ToList();
não posso usar assim:
context.Produto.ToList()
?
No caso Produto
é uma Classe de Modelo, não uma instância de Banco de Dados, e também não é uma Classe declarada diretamente dentro de ApplicationContext
(o qual context faz referência) então para que o Framework entenda como banco de dados teria 2 possibilidades:
Declarar a instância ao aplicar no método: (utilizado na aula)
context.Set<Produto>().ToList()
Onde ele basicamente faz a declaração da instância DbSet<Produto>
no ato de executar a transação com o banco.
A seguinte linha poderia ser adicionada dentro da classe ApplicationContext:
public DbSet<Produto> Produtos { get; set; }
Dessa forma seria pré-definido uma instância do tipo DbSet para acesso ao banco, referenciando ao modelo Produto, podendo ser aplicado sem a utilização do Set<T>
em qualquer método que fosse fazer o uso da tabela definida na classe de modelo Produto
context.Produtos.ToList()
Ou seja, em ambos os casos precisará estar definindo como uma instância de Banco de Dados para poder saber qual tabela e modelo irá acessar.