Microsoft 对实体框架中的二级缓存有何建议?
Posted
技术标签:
【中文标题】Microsoft 对实体框架中的二级缓存有何建议?【英文标题】:What does Microsoft recommend for 2nd level Caching in Entity Framework? 【发布时间】:2012-08-13 13:47:12 【问题描述】:我使用了 Jarek Kowalski 制作的“EF Provider Wrappers”。它工作正常,但我注意到“限制和免责声明”部分:
除了示例代码中包含的内容之外,这些提供程序尚未经过广泛测试,因此您应该自担风险使用它们。
与任何其他示例一样,Microsoft 不为其提供任何形式的支持,但如果您发现错误或有功能建议,请使用此博客的联系表并告诉我关于他们。
我有点困惑,微软真的希望开发人员在没有任何官方支持(或推荐)的情况下在生产网站上使用 EnityFramework 进行二级缓存吗?
【问题讨论】:
标题似乎有点咄咄逼人。与其继续“攻击”,不如考虑询问期望的目标,例如:EF 支持的二级缓存策略是什么? (第一印象会对回复和/或接近投票产生很大影响..) 【参考方案1】:现在有一个可用于 EF 6.x 的二级缓存提供程序
Entity Framework 当前不支持缓存查询结果。示例 EF 缓存提供程序可用于 Entity Framework 版本 5 及更早版本,但由于提供程序模型的更改,此示例提供程序不适用于 Entity Framework 6 及更高版本。该项目通过为 Entity Framework 6.1 应用程序启用查询结果缓存来填补这一空白。
https://github.com/moozzyk/EFCache
并在其之上实现了 Redis 提供程序:
通过添加 Redis 支持来扩展 EFCache
我想使用 Redis 将 L2 缓存添加到 EF - 什么都没有 当时可用。
我在 CodePlex 上发现了 Pawel Kadluczka (moozzyk) 编写的 EFCache
https://github.com/silentbobbert/EFCache.Redis
【讨论】:
【参考方案2】:Apache Ignite.NET 为实体框架提供分布式内存二级缓存:https://apacheignite-net.readme.io/docs/entity-framework-second-level-cache
【讨论】:
【参考方案3】:没有官方的二级缓存支持。我什至不确定 EF Provider 包装器是否与 .NET 4.5 兼容。二级缓存 is in backlog 用于未来版本的 EF。
您也可以实现自己的解决方案,因为EF is fully open sourced。
顺便说一句。我见过几十个相当复杂的网站在生产中运行,没有任何缓存......
【讨论】:
感谢 Ladislav,Entity Framework 5 的 EF Provider 包装器中存在一些可以修复的小问题。 '给我们发一个补丁'。来自世界上最大的软件公司的绝妙方法。以上是关于Microsoft 对实体框架中的二级缓存有何建议?的主要内容,如果未能解决你的问题,请参考以下文章