微软在Entity Framework中推荐使用什么样的二级缓存?

12
我使用了Jarek Kowalski制作的 "EF Provider Wrappers"。它运行良好,但我注意到其中“限制和免责声明”部分中提到:

提供程序除了示例代码之外没有经过广泛测试,因此您应该自行承担使用风险。

与任何其他示例一样,Microsoft不提供任何支持,但如果您发现错误或有功能建议,请使用此博客的联系表格并告诉我。

我有点困惑,Microsoft真的希望开发人员在没有官方支持(或推荐)下在生产网站上使用EntityFramework进行二级缓存吗?


7
标题似乎有点过于激进。不要采取“攻击”的方式,考虑询问所需的目标,例如:EF的支持的第二级缓存策略是什么?(第一印象对回复和/或关闭投票可能会产生很大影响..) - user166390
3个回答

12

没有官方的第二级缓存支持。我甚至不确定EF Provider包装器是否与.NET 4.5兼容。第二级缓存已经被计划在将来的EF版本中实现。

您也可以自己实现解决方案,因为EF是完全开源的

顺便说一句,我见过很多相当复杂的网站在生产中运行而没有任何缓存...


谢谢Ladislav,Entity Framework 5中的EF Provider包装器存在一些小问题,这些问题是可以修复的。 - Raj
2
“发送补丁给我们。”来自全球最大的软件公司的伟大方法。 - h.alex

9

现在EF 6.x有第二级缓存提供程序可用。

Entity Framework目前不支持查询结果的缓存。针对Entity Framework版本5及更早版本,有一个示例EF缓存提供程序可用,但由于提供程序模型的更改,该示例提供程序无法与Entity Framework 6及更新版本一起使用。本项目填补了这一空白,为Entity Framework 6.1应用程序启用了查询结果的缓存。

https://github.com/moozzyk/EFCache

并在其之上实现了Redis提供程序:

通过添加Redis支持扩展EFCache

我想使用Redis为EF添加L2缓存 - 当时没有任何可用的东西。

我在CodePlex上找到了由Pawel Kadluczka(moozzyk)编写的EFCache

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


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接