В моем приложении ASP.NET MVC у меня есть довольно сложная страница редактирования, которая объединяет несколько моделей в одно представление.
Я использую шаблон ViewModel, чтобы объединить всю эту информацию и представить один связанный объект в представлении.
Например, моя структура ViewModel выглядит примерно так:
CompanyId
CompanyName
List<Employee> Employees
List<ContactMethod> ContactMethods
Объект Employee имеет ряд основных свойств и предпочтительный метод связи.
На странице редактирования пользователю предоставляются все сотрудники компании, и у них есть возможность добавлять и удалять (используя javascript), а также редактировать данные о сотрудниках. Список ContactMethods используется для заполнения раскрывающегося списка для каждого сотрудника.
Я успешно перевел свои модели (прочитанные из базы данных) в эту ViewModel и обратно, поэтому после редактирования у меня осталась ViewModel, представляющая текущее состояние сотрудников этой компании.
Я использую шаблон репозитория для связи с базой данных, поэтому мой вопрос: должен ли я вызывать непосредственно в CompanyRepository, передавая ViewModel, или я должен сначала преобразовать ViewModel обратно в объекты модели, прежде чем использовать репозиторий для записи их в базу данных?
Короче говоря, должен ли репозиторий знать о моих объектах ViewModel?