对Entity Framework应用二级缓存

二级缓存(Second Level Caching)是个Entity Framework中尚不能开箱即用的功能。在一篇MSDN文章“用Entity Framework和AppFabric实现二级缓存”中,Julie Lerman展示了如何通过在Entity Framework中利用像Microsoft AppFabric等缓存服务来实现二级缓存。

我们为什么需要二级缓存?

EF的最大好处之一是其拥有根据在上下文中找到的状态信息自动生成数据库持久化命令(插入、更新和删除)的能力。但是如果那些状态信息不可用,那么当调用SaveChanges命令时EF就会无所事事。

二级缓存有助于解决此类问题。这些缓存位于事务之外——常常是应用程序之外——因此可用于任何上下文实例。

Julie扩展了由Jarek Kowalski设计的EF Caching Provider类,从而使得此类可与Windows Server AppFabric协同工作。她修改了适配器类,以便此类可以调用AppFabric的客户端API,她还扩展ObjectContext类。你可以从她的文章中下载代码示例从而学到更多知识。

通过缓存常用查询数据从而避免频繁命中数据库,缓存二级缓存同样有助于提高高事务性应用程序(highly transactional applications)的性能。对于需要与像Entity Framework等ORM框架一起使用的缓存解决方案而言,Microsoft AppFabric并非唯一的选择——在对代码进行适当地修改后,例如memcached等其他框架同样可用于相同的目的。

ADO.NET Entity Framework是一款来自微软的对象-关系映射器。最近发布的EF 4.1具有一些有趣的功能,例如Validation(验证)、Spatial data(空间数据)、Enums(枚举)及更多功能。

查看英文原文:Second Level Caching with Entity Framework

你可能感兴趣的:(对Entity Framework应用二级缓存)