我们有两个 Web 应用程序,每个应用程序都在为 EF 创建自己的数据上下文。当我在一个应用程序中更改实体时,当我在 SQL Server Mangement Studio 中查看数据时,我会在页面和数据库中看到更改。但是,我没有立即在其他应用程序中看到更改。
两个应用程序都使用依赖注入(inject),并且两个应用程序都使用相同的业务层和数据层。因此,两个应用程序中的 UI 通过一个公共(public) Controller 类(不要与 MVC Controller 混淆),并且 Controller 通过它正在检索的实体的存储库。因为它们是不同的应用程序,所以它们每个都有自己的 Entity Framework 数据上下文实例。
如果有某种缓存,我该如何关闭它?
提前致谢。
编辑 - 也许缓存发生在 EF 之上的某个地方?清除浏览器缓存似乎无法解决问题。过了一段时间后,我会突然在另一个应用程序中看到对记录的更新,但是有一段时间没有任何刷新会显示更新。
最佳答案
如果缓存发生在上下文中,当您在当前 HTTP 请求结束时处理上下文时,缓存的值应该消失。您确实有每个请求的上下文,对吧?
关于c# - Entity Framework 是否有某种上下文缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5669700/