我使用了Jarek Kowalski制作的“EF Provider Wrappers”。它工作正常,但我注意到“限制和免责声明”部分,其中说:
除了示例代码中包含的内容之外,提供商尚未经过广泛测试,所以您应该使用它们,风险自负。
与其他任何示例一样, Microsoft不提供任何形式的支持,但如果您发现错误或有功能建议,请使用此博客的联系表单告诉我们关于他们。
我在这里有点困惑,微软是否真的希望开发人员在生产网站上使用EnityFramework而没有任何官方支持(或建议)进行二级缓存?
答案 0 :(得分:8)
没有正式的二级缓存支持。我甚至不确定EF Provider包装器是否与.NET 4.5兼容。未来版本的EF的第二级缓存is in backlog。
您还可以实施自己的解决方案,因为EF is fully open sourced。
顺便说一下。我已经看到了几十个非常复杂的网站在生产中运行,没有任何缓存...
答案 1 :(得分:8)
现在有一个可用于EF 6.x的二级缓存提供程序
Entity Framework目前不支持缓存查询结果。实例框架版本5及更早版本可以使用示例EF缓存提供程序,但由于对提供程序模型的更改,此示例提供程序无法与Entity Framework 6及更高版本一起使用。该项目通过为Entity Framework 6.1应用程序启用查询结果的缓存来填补空白。
https://github.com/moozzyk/EFCache
Redis提供商在其上实施:
通过添加Redis支持来扩展EFCache
我想使用Redis将L2缓存添加到EF - 什么都没有 当时有空。
我发现Pawel Kadluczka(moozzyk)在CodePlex上写的EFCache
答案 2 :(得分:1)
Apache Ignite.NET为Entity Framework提供分布式内存二级缓存:https://apacheignite-net.readme.io/docs/entity-framework-second-level-cache