Подтвердить что ты не робот

Как заставить Entity Framework и MVVM играть вместе?

Я бы хотел использовать как EF, так и MVVM, и я пытаюсь понять, как они сочетаются. Я не могу найти много примеров, поэтому надеюсь, что вы, ребята, можете ответить на несколько вопросов.

Скажем, у меня есть одна таблица в базе данных Customer. Я запускаю конструктор EF и получаю модель данных.

Следующий шаг - запустить некоторый linq для получения данных из модели данных. Для этого создайте новый класс CustomerRepository.

Теперь я предполагаю, что модель предложит CustomerRepository.GetCustomers получить список клиентов.

Вот мой вопрос: CustomerModel имеет список объектов клиента, которые были определены EF в модели данных. Как добавить атрибуты проверки или какие-либо проверки на него?

Кажется, что существует некоторая развязка между EF и MVVM. Я уверен, что некоторые из вас уже побывали в этом - какие-нибудь идеи? Любые лучшие способы приблизиться к этому?

Приветствия

Стив

4b9b3361

Ответ 1

Валидация, бизнес-правила, презентация объекта Customer должны жить в ViewModel, который будет служить контроллером или презентатором для вашего представления.

С точки зрения создания этого ViewModel у вас есть несколько вариантов:

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

Теперь вы можете добавить пользовательские правила проверки на виртуальную машину, так что когда соответствующая команда будет отправлена ​​из представления, вы сможете выполнять свои бизнес-правила, и, при необходимости, вы можете обновить модель с помощью EF API, чтобы сохранить эти изменения обратно в базы данных...