Я могу быть обречен несоответствием импеданса, но я пытаюсь согласовать примеры, которые я видел для IRepository и неизменных объектов.
Я работаю над приложением каталогизации, в котором сотни веб-запросов работают с «рабочим набором» продуктов - подмножество всего каталога, как правило, работает в любой момент времени.
В то же время наши группы данных постоянно обновляют данные о продукте - новые изображения, обновленные цены, описания и т. Д. И т. Д.
Мне кажется, что для производительности мне лучше рассматривать продукт как неизменяемый. Они загружаются и кэшируются в хранилище, и многие потоки могут одновременно обращаться к одному и тому же объекту продукта.
Но эта идея, похоже, нарушена многими примерами IRepository, которые я видел в методах Update / Delete - как только поток может писать в продукт, создается впечатление, что я открываю себя гонкам и другим злобам.
Таким образом, я представлял модель «редактор», в которой изменения в сущности вносятся с помощью сопутствующего объекта «редактор», который затем сохраняет изменения и вынуждает соответствующий продукт быть перезагруженным для использования всеми. Продукты никогда не меняются - только «редактируются» снаружи и перезагружаются.
Имеет ли это какой-то смысл? Может ли это работать с репозиторием, как я их описал?
Спасибо за ваше время!