извините за мой английский.
Ранее я публиковал этот вопрос как: Несколько ViewModels запрашивают один и тот же объект домена, должен ли я предоставить им одинаковые / разные экземпляры?
После того, как я провел некоторое исследование по этому вопросу, я понял, что мой предыдущий вопрос был слишком запутанным, поэтому я публикую этот новый вопрос.
Допустим, я хочу создать настольное приложение WPF для управления информацией в 1 млрд.человек.У него только один конечный пользователь (я), и все данные хранятся на моей локальной машине (SQL Server / MySQL).Я собираюсь использовать Visual Studio, Autofac, NHibernate и попытаться реализовать шаблоны MVVM, DI, DDD.
Один и тот же человек может одновременно отображаться в любом месте пользовательского интерфейса: в нескольких окнах, вкладках, списках, выпадающих списках., текстовые блоки ... Каждый список может содержать несколько тысяч человек, а все приложение может иметь от 10 до 100 списков.И содержимое (лица) списков часто обновляется: Каждый раз, когда я изменяю настройки списка, список очищается, а затем заполняется еще несколькими тысячами новых людей .
Проблема в том, что: если я изменяю человека (например, меняю имя) в одном списке, как применить изменения ко всем другим спискам?
Я думаю, что есть 2 способа решить эту проблемупроблема:
Для каждого человека используйте один экземпляр во всем приложении.Чтобы реализовать это, я могу использовать один UnitOfWork через приложение, но, похоже, такой подход вызовет утечку памяти.
Использование нескольких экземпляров для каждого человека (по одному экземпляру в списке).Чтобы реализовать это, я думаю, что я должен использовать один UnitOfWork для каждого списка, и я должен найти способ синхронизировать все экземпляры человека. Berryl упомянутый агрегатор событий.Но кто несет ответственность за публикацию и регистрацию событий?
Я нашел очень похожий вопрос в здесь , а также прочитал следующие статьи, но я все еще чувствую растерянность:
Спасибо!