создай задачу в фоне, которая будет раз в сек проверять изменения в бд и обновлять коллекцию, например по полю UpdateDate максимальное значение из коллекции и проверять в бд, поддтягиваешь изменённые данные и обновляешь их в коллекции по ключу (обычно по айди). Это конечно костыльно звучит, но у тебя рассинхрон будет максимум 1 сек и в бд будет всего 1 запрос в сек по этому вопросу а не 100-1000