Что рекомендует 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
Ответ 3
Apache Ignite.NET предоставляет распределенный кеш второго уровня в памяти для платформы Entity Framework: https://apacheignite-net.readme.io/docs/entity-framework-second-level-cache