Предположим, у меня есть приложение WPF / MVVM для управления некоторыми гипотетическими клиентами:).
Модель домена содержит объект с именем Customer (представлен в коде как POCO).
Главный экран содержит сетку, связанную с моделью представления (CustomersViewModel), которая загружает свои данные из репозитория .
Главный экран также позволяет создавать новых клиентов (и сохранять их в БД).
Предположим, мне нужно реализовать вариант использования "добавить клиента". Наиболее очевидный подход заключается в следующем:
- Предоставление пользователю диалогового окна для заполнения новыми данными клиента.
- Обрабатывать нажатие кнопки «Сохранить» в ViewModel.
- Создание объекта домена customer (var new_customer = new Customer (..)) с использованием данных из диалога (шаг 1).
- Вызовите репозиторий .Save (new_customer), чтобы сохранить нового клиента в БД.
- Перезагрузите CustomersViewModel со свежими данными из БД, чтобы вновь добавленный клиент был виден в сетке.
Лично мне не нравится этот быстрый и грязный способ (из-за необходимости перезагружать полный список клиентов из БД при каждом добавлении нового клиента).
Может кто-нибудь предложить лучший подход (который не требует обновления списка клиентов из БД) ??? Я чувствую, что должна быть лучшая практика для обработки подобных сценариев :)).
Заранее спасибо!