У меня вопрос по организации свойств в viewModel. Насколько я понимаю, модель представления должна быть максимально простой, и главное, что она должна делать, это привязывать данные к представлению.
Вопрос в том, как отличить свойства в модели представления от модели BL. Я имею в виду, например, у меня есть модель BL, например:
public class UserDetailsModel
{
public string UserName {get;set;}
public string SomeInfo{get;set;}
public string AnotherInfo{get;set;}
public string Anything{get;set;}
public string Something {get;set;}
...
}
то у меня другая модель BL говорит:
public class UserInfoModel
{
public string Info1{get;set;}
public string Info2{get;set;}
public string Info3{get;set;}
public string Info4{get;set;}
public string Info5 {get;set;}
...
}
Теперь вопрос в том, как лучше всего создать ViewModel, который должен иметь данные обеих моделей BL.
1) Дублировать свойства из 2 моделей и использовать привязку модели по умолчанию для передачи данных из представления в контроллер, затем создавать модели BL из ViewModels и через данные обновления репозитория? В данном случае у нас дублирование кода...
2) ViewModel должен выглядеть примерно так:
public class UsersIdentificationViewModel
{
public UsersIdentificationViewModel()
{
UserInfoModel = new UserInfoModel();
}
public UserInfoModel UsersInfo { get; set; }
public UserDetailsModel UserDetails { get; set; }
}
Привязка по умолчанию в этом случае не будет работать (поправьте меня, если я ошибаюсь), и я должен написать собственное связывание модели или что-то в этом роде... Какой подход лучше для модульного тестирования или, может быть, есть другой подход?