Во-первых, вы бы не использовали List<User>
для этого, а скорее Dictionary<int,User>
, используя идентификатор пользователя в качестве ключа, чтобы вы могли немедленно найти пользователя для обновления. Во-вторых, я думаю, что это, вероятно, смесь обоих. Вы сохраняете кэшированную копию текущих пользователей, периодически обновляющуюся из БД, и сохраняете данные (асинхронно, если необходимо) в БД. Возможно, вы захотите подумать о пользовательском классе персистентности для пользователей, который инкапсулирует это поведение, если вы обнаружите, что выполняете такие операции в различных местах вашего кода.