Что рекомендует Microsoft для кэширования 2-го уровня в платформе Entity Framework?

Я использовал " EF Provider Wrappers", сделанный Яреком Ковальски. Он отлично работает, но я заметил раздел "Ограничения и отказ от ответственности", в котором говорится:

Поставщики не подвергались всестороннему тестированию за пределами того, что включено в примерный код, поэтому вы должны использовать их на свой страх и риск.

Как и в случае с любым другим образцом, Microsoft не предлагает какой-либо поддержки для него, но если вы найдете ошибки или предложения по функциям, используйте эту контактную форму для блогов и сообщите мне о них.

Я немного запутался здесь. Неужели Microsoft действительно ожидает, что разработчики будут использовать EnityFramework на веб-сайтах без какой-либо официальной поддержки (или рекомендации) для кэширования 2-го уровня?

Ответ 1

Нет официальной поддержки кеша второго уровня. Я даже не уверен, что обертки EF Provider совместимы с .NET 4.5. Кэш второго уровня находится в backlog для будущих версий EF.

Вы также можете реализовать свое собственное решение, потому что EF полностью открыт.

Btw. Я видел десятки довольно сложных веб-сайтов, работающих в производстве без кеша...

Ответ 2

Теперь для EF 6.x теперь доступен поставщик кэша второго уровня

Entity Framework в настоящее время не поддерживает кэширование результатов запроса. Примерный поставщик кэширования EF доступен для Entity Framework версии 5 и более ранних версий, но из-за изменений в модели поставщика этот образец провайдера не работает с Entity Framework 6 и новее. Этот проект заполняет пробел, позволяя кэшировать результаты запроса для приложений Entity Framework 6.1.

https://github.com/moozzyk/EFCache

И поставщик Redis реализован поверх него:

Расширяет EFCache, добавляя поддержку Redis

Я хотел добавить L2 Cache в EF с помощью Redis - ничего не было доступный в то время.

Я нашел EFCache, написанный Pawel Kadluczka (moozzyk) на CodePlex

https://github.com/silentbobbert/EFCache.Redis