猿问

实体框架 DbContext 检测来自外部的更改

我确信这是重复的,但在搜索互联网后我找不到这个问题。因此,如果这是重复的,请指出正确的一个。

问题:如何让实体框架拾取数据库中实体中从另一个源发生的更改。

由于 DbContext 缓存未更新,我遇到了很多此类问题。

示例:假设我有 2 台具有相同架构的服务器。两台服务器一起工作并且都使用该表Person

  1. 服务器 A 创建Jack年龄为 21 岁的 Person,并将其保存到数据库中。Jack缓存在服务器 A 的 DbContext 中。

  2. Jack服务器 B在服务器 A 创建数据库后从数据库中获取数据。然后,服务器 B 将Jack年龄更新为 22,并将其保存到数据库中。

  3. 向服务器 A 发出请求。Jack因此服务器 A 的 DbContext 以其缓存中的版本进行响应Jack...年龄仍为 21。

我很难相信服务器 A 的 DbContext 没有办法重新获取记录。我觉得这种能力应该融入到实体框架中。如果没有,那么我还有其他选择吗?

我想到的一种选择是告诉实体框架不要使用缓存。这可能吗?


UYOU
浏览 85回答 1
1回答

不负相思意

我认为您使用 DbContext 作为单例实例。如果您每次调用 DbContext 时都对其进行初始化,则不会发生此问题。
随时随地看视频慕课网APP
我要回答