По моему опыту, кэш 2-го уровня, предоставленный ORM, будет кешировать данные на основе фактического набора результатов, извлеченного из базы данных.Это может привести к большим накладным расходам, поскольку создание экземпляров объекта и заполнение данных довольно дорого.
Преимущество заключается в том, что ленивая загрузка и т. Д. Будет работать нормально, но большие результаты по-прежнему будут использовать много ресурсов при повторном заполненииobjects.
Мы используем комбинацию кэша 2-го уровня и кэша ASP.NET в нашем веб-приложении из-за дорогостоящих накладных расходов, которые в редких случаях экономят нам целых несколько секунд (!), но с недостаткомне в состоянии лениво загружать коллекции или обновлять сущности.
Это основано только на NHibernate, я никогда не работал с фреймворком сущностей, но я предполагаю, что все фреймворки ORM страдают от этого.