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.