Entity Framework有像DataSet / DataTables这样的缓存机制吗?

时间:2010-05-17 00:27:45

标签: entity-framework

Entity Framework是否有像DataSet / DataTables那样的缓存机制?

换句话说,如果你开始使用EF,它实际上只是一种轻松地将数据输入/输出数据库的方法,而不提供额外的缓存层,如DataSet / DataTables,你有内存中的表示(在线) /离线)并且在某些时候你可以说“坚持对数据库的所有更改”

2 个答案:

答案 0 :(得分:2)

取决于您所指的缓存的复杂程度。

EF有一个对象缓存。见...

Identity Resolution, State Management, and Change Tracking

  

ObjectContext表示内存中对象的容器。对象上下文在其他类和接口的帮助下,管理对象的属性的标识,状态,原始和当前值,并跟踪对缓存中每个对象所做的更改。

和...

Saving Changes and Managing Concurrency

这些文章稍微介绍了EF Object Cache。

对于进一步的缓存,你可以编写一个包装器,如... http://blogs.msdn.com/efdesign/archive/2008/07/09/transparent-caching-support-in-the-entity-framework.aspx

答案 1 :(得分:1)

您可以查看此caching provider实体框架。它包含3个ICache接口实现,可以在您的应用程序中使用:

  • AspNetCache - 使用的缓存 ASP.NET缓存机制。
  • InMemoryCache - 简单,内存中 具有基本LRU到期的缓存 政策。
  • VelocityCache - 使用缓存的实现 Microsoft分布式缓存代号 “速度”CTP3。