我们有两个Web应用程序,每个都在为EF创建自己的数据上下文。当我在一个应用程序中对实体进行更改时,当我在SQL Server Mangement Studio中查看数据时,我会看到页面和数据库中的更改。但是,我没有立即看到其他应用程序中的更改。
两个应用程序都使用依赖注入,两个应用程序都使用相同的业务层和数据层。因此,两个应用程序中的UI都要通过一个公共控制器类(不要与MVC控制器混淆),并且控制器会通过它正在检索的实体的存储库。因为它们是不同的应用程序,所以每个应用程序都有自己的实体框架数据上下文实例。
如果有某种缓存,我该如何关闭它?
提前致谢。
编辑 - 也许缓存是在EF之上的某个地方发生的?清除浏览器缓存似乎无法解决问题。经过一段时间后,我会突然看到其他应用程序中记录的更新,但有一段时间没有多少提示会显示更新。
答案 0 :(得分:7)
如果在上下文中发生缓存,则在当前HTTP请求结束时处理上下文时,缓存的值应该消失。你确实有每个请求的上下文,对吗?
答案 1 :(得分:2)
是的,上下文会缓存他们的结果。
你应该为每个查询创建一个新的上下文(或实现类似NHibernate的Session-per-request)