На сколько мне известно, есть модели для представления (DTO или xxxViewModel - их видит конечный пользователь и передает в них данные для контроллеров), и есть сущности Entity который уже в базе (делают маппинг между ними).
Что бы не лепить валидацию, скрывать какие-то поля или добавлять временные, их разделили. Приложение станет безопасней, isAdmin = true не влепят, даже если забудете байдинге убрать свойство.
Если в контроллер прилетает не сложный объект, DTO делать не обязательно.
Если сложный, то проще сделать, их все равно много не будет, зато легко валидировать через ModelState.IsValid и атрибуты.
Вот отличный сайт
metanit.com/sharp
Это просто находка, за пару дней можно ознакомиться со всеми основными моментами по ASP.NET.