我正在使用实体框架。
在我的数据库中存储了个人和他们的原籍国。当我加载一个人对象时,我不知道每个人的来源是什么。有没有办法缓存国家列表,这样就不会有不必要的请求。
我正在使用实体框架。
在我的数据库中存储了个人和他们的原籍国。当我加载一个人对象时,我不知道每个人的来源是什么。有没有办法缓存国家列表,这样就不会有不必要的请求。
正如 Luhmann 已经说过的,我的伙伴 Jarek 为实体框架提供了一个出色的示例缓存提供程序。他在这里谈到。
然而,有时这种方法过于矫枉过正,我怀疑缓存国家是一个很好的例子,努力不值得。实现某种临时缓存可能会更好。
如果您尝试这样做,您将遇到的主要问题是实例实体框架实体一次只能附加到一个 ObjectContext,这意味着如果您收到并发请求(例如在网站中),您将遇到问题是您只需从缓存中获取项目并盲目使用它们。
您需要的是一个克隆缓存,也就是说,当您从缓存中抓取某些内容时,它会克隆它们。
我整理了一个技巧来说明如何执行此操作技巧 14 - 如何缓存实体框架参考数据
希望这可以帮助
亚历克斯·詹姆斯
实体框架团队 Microsoft。
您可以查看 Jaroslaw Kowalski为 Entity Framework 提供的出色的跟踪和缓存提供程序包装器。
我会先缓存该国家/地区列表,然后为每个检索到的人分配适当的国家/地区。如果您决定还缓存人员,则应使他们依赖于缓存的国家/地区,并在对国家/国家/地区列表进行任何更新时使他们无效。