У меня есть веб-приложение ASP.NET MVC 5 и я использую EF 6.1 для доступа к моей БД.
У меня есть довольно сложные запросы LINQ, которые занимают до 10 секунд для компиляции, но затем выполняются за несколько миллисекунд. EF действительно кэширует эти запросы, и во второй раз, когда запрос выполняется, он возвращается в течение нескольких миллисекунд.
Но этот кеш не сохраняется, поэтому при каждом перезагрузке приложения необходимо перекомпилировать запрос, который снова забирает 10 секунд.Кэш запросов Persist Entity Framework
Есть ли способ сохранить этот кеш запросов, чтобы он выжил при перезагрузке приложения?
http://www.fusonic.net/ru/blog/2014/07/09/three-steps-for-fast-entityframework-6.1-first-query-performance/ –
Спасибо за ссылку, но я уже большинство из них и не обрабатывает кеш запросов, а только кэширование модели ... – ChrFin
Кэш запросов - это словарь внутри QueryCacheManager. Я попытался сохранить его с помощью отражения, но поскольку QueryCacheKey и QueryCacheEntry не являются общедоступными и не помечены как Serializable, это невозможно. Сохранение/загрузка кеша плана запроса будет очень полезной функцией, поэтому вы должны создать проблему на http://entityframework.codeplex.com/workitem/list/advanced –