【发布时间】:2011-10-04 21:57:53
【问题描述】:
我有一个带有 EF4.1 和存储库/工作单元模式的 MVC3 站点,并为每个 http 请求创建一个新上下文。
我想在 Entity Framework 4.1 中实现自定义对象缓存。这意味着将对象添加到 asp.net 缓存中,以便其他类似的 http 请求更快地检索。
但 EF 的问题在于,这些缓存的实体被附加到最初用于检索该实体的上下文中,并在该 http 请求结束后被释放。
现在,当我想更新这个缓存的对象时,它给了我“一个实体对象不能被多个 IEntityChangeTracker 实例引用”,这是完全有道理的。
在 MVC3/EF4.1 中实现对象缓存的最佳做法是什么?
我猜你必须在添加到缓存时从旧上下文中分离实体,并在检索时附加到新上下文。但我肯定不是第一个遇到这个或尝试实现这个的人!
那里有任何帮助程序或库吗? (请不要将我指向http://code.msdn.microsoft.com/EFProviderWrappers/Release/ProjectReleases.aspx?ReleaseId=4747,因为这会在对表的任何更新时从缓存中删除所有条目,证明自己无用)。
谢谢。
【问题讨论】:
标签: c# asp.net-mvc-3 entity-framework entity-framework-4 entity-framework-4.1