Вы не кэшируете «чтения из БД», вы кэшируете результат, возвращенный из вызова базы данных (т. Е. Оператор SELECT или выполнение хранимой процедуры).
Обычно вы проецируете этот результат в строго типизированный набор результатов.(например, List<T>
).
Кэшируется именно этот проектируемый результирующий набор (объект).
Относительно того, где он кэшируется, начиная с ASP.NET 4.0 до вас(поскольку теперь вы можете указывать настраиваемых провайдеров кэша).
С точки зрения «ограничения» на объем данных, которые вы можете хранить в кэше, ограничения по физическим данным нет, это ограничение по объему памяти.Кэш хранится в памяти пула приложений для вашего веб-сайта ASP.NET, сам по себе это процесс (рабочий процесс ASP.NET).
Никогда не видел ситуации, когда ему не хватало памяти.Просто будьте умны в отношении того, как / что вы кэшируете (кешируйте объекты вместе, где это возможно), и у вас все будет хорошо.