Boa tarde.
Eu vi durante o curso que uma boa prática é colocar campos obrigatórios de uma classe como o ID no construtor e não deixar que o campo seja alterado definindo a propriedade como somente leitura ou protegendo o set.
No entando me deparei com o seguinte problema, usando o EntityFramework em uma WebApi, por exemplo eu recebo um objeto do tipo categoria, para alterar no FromBody, no entanto a propriedade Id não é populada, pois o campo set está protegido, e se eu deprotejo o campo acabo perdendo o ecapsulamento do mesmo..
Qual a melhor prática a se seguir nesses casos?
Pensei em criar o viewModel, mas teria que criar o viewModel de todas as classe do modelo, acredito que não seja o ideal...