29

我正在使用实体框架。

在我的数据库中存储了个人和他们的原籍国。当我加载一个人对象时,我不知道每个人的来源是什么。有没有办法缓存国家列表,这样就不会有不必要的请求。

4

3 回答 3

39

正如 Luhmann 已经说过的,我的伙伴 Jarek 为实体框架提供了一个出色的示例缓存提供程序。他在这里谈到。

然而,有时这种方法过于矫枉过正,我怀疑缓存国家是一个很好的例子,努力不值得。实现某种临时缓存可能会更好。

如果您尝试这样做,您将遇到的主要问题是实例实体框架实体一次只能附加到一个 ObjectContext,这意味着如果您收到并发请求(例如在网站中),您将遇到问题是您只需从缓存中获取项目并盲目使用它们。

您需要的是一个克隆缓存,也就是说,当您从缓存中抓取某些内容时,它会克隆它们。

我整理了一个技巧来说明如何执行此操作技巧 14 - 如何缓存实体框架参考数据

希望这可以帮助

亚历克斯·詹姆斯

实体框架团队 Microsoft。

于 2009-07-18T18:34:36.827 回答
8

您可以查看 Jaroslaw Kowalski为 Entity Framework 提供的出色的跟踪和缓存提供程序包装器

于 2009-07-18T18:15:29.983 回答
0

我会先缓存该国家/地区列表,然后为每个检索到的人分配适当的国家/地区。如果您决定还缓存人员,则应使他们依赖于缓存的国家/地区,并在对国家/国家/地区列表进行任何更新时使他们无效。

于 2009-07-18T16:47:01.723 回答