Я новичок в разработке на C #, поэтому все еще разбираюсь в нескольких вещах.
Я стараюсь придерживаться хороших принципов проектирования, чтобы мой код можно было поддерживать. Таким образом, я строю приложение Line of Business, используя шаблоны MVVM и Factory. Я также использую Dependency Injection (Unity).
Мой вопрос касается обновления кэша данных, созданного с помощью Dependency Injection. Когда я создаю свою модель представления, кэш данных загружается следующим образом:
_container.RegisterType<IRepo<Relation>, RelationRepo>(new TransientLifetimeManager());
Мой сценарий состоит в том, что у меня есть данные, представленные пользователям в GridView. У меня многопользовательская среда с динамической информацией, поэтому вполне возможно, что время от времени данные в кэше устаревают. Это может привести, как и следовало ожидать, к ошибке DBConcurrency время от времени. То, с чем я сталкиваюсь, - это как правильно с этим справляться. Должен ли я прервать весь процесс и заставить пользователя перезагрузить приложение, воссоздав тем самым DI, или есть элегантный способ обновить кэш и повторно представить данные после предоставления необходимой информации пользователю. Используя опцию 2n'd, я мог бы, возможно, разместить кнопку обновления на экране или синхронизировать событие, чтобы обновить данные, чтобы пользователь мог видеть любые изменения в данных.
Итак, в основном я спрашиваю, как синхронизировать кэш с базовой базой данных в режиме реального времени?
Заранее спасибо.