Ответ 1
Валидация, бизнес-правила, презентация объекта Customer должны жить в ViewModel, который будет служить контроллером или презентатором для вашего представления.
С точки зрения создания этого ViewModel у вас есть несколько вариантов:
- Включить модель как свойство виртуальной машины и передать экземпляр модели в конструктор VM. Затем вы можете открыть свойства Клиента и просто подключить их к основным свойствам соответствующей модели.
- Сгенерируйте ViewModel с использованием T4-шаблонов и Reflection (или предпочтительно Introspection), чтобы "прочитать" модель и сгенерировать свойства, которые будут отображаться прямо к нему.
Теперь вы можете добавить пользовательские правила проверки на виртуальную машину, так что когда соответствующая команда будет отправлена из представления, вы сможете выполнять свои бизнес-правила, и, при необходимости, вы можете обновить модель с помощью EF API, чтобы сохранить эти изменения обратно в базы данных...