如何刷新 Entity Framework Core DBContext?

2024-04-13

当我的表被另一方更新时,dotnet core中的数据库上下文仍然返回旧值,如何强制刷新数据库上下文?

我做过研究,但我只发现人们使用Reload强制刷新上下文的方法(EF core 中不可用)。

其他一些解决方案建议在使用后处置上下文,但我收到错误消息,说数据库上下文是通过依赖项注入创建的,我不应该弄乱它。


哦,这个问题让我纠结了好几天。

我将 Visual Studio 2017 与 .Net Core 2.1 结合使用,我的 EF Core 代码如下所示:

//  1.  Load a [User] record from our database 
int chosenUserID = 12345;
User usr = dbContext.Users.FirstOrDefault(s => s.UserID == chosenUserID);

//  2. Call a web service, which updates that [User] record
HttpClient client = new HttpClient()
await client.PostAsync("http://someUrl", someContent);

//  3. Attempt to load an updated copy of the [User] record
User updatedUser = dbContext.Users.FirstOrDefault(s => s.UserID == chosenUserID);

在第 3 步,只需将“updatedUser”设置为original[用户] 记录的版本,而不是尝试加载新副本。所以,如果在第 3 步之后,我modified那个 [用户] 记录,我实际上会丢失网络服务应用于它的任何设置。

我最终找到了两个解决方案。

我可以改变ChangeTracker设置。这有效,但我担心这样做的副作用:

dbContext.ChangeTracker.QueryTrackingBehavior = Microsoft.EntityFrameworkCore.QueryTrackingBehavior.NoTracking;

或者,在尝试重新加载 [用户] 记录之前,我可以输入以下命令......

await dbContext.Entry(usr).ReloadAsync();

这似乎迫使 .Net Core 重新加载该 [User] 记录,生活再次美好。

我希望这有用...

追踪并修复这个错误花了我几天的时间......

还有一篇很棒的文章描述了解决此缓存问题的各种方法here http://codethug.com/2016/02/19/Entity-Framework-Cache-Busting/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何刷新 Entity Framework Core DBContext? 的相关文章

  • 如何在 DataColumn.Expression 中使用 IF/ELSE 或 CASE?

    我有一个包含 1 列的表 状态 我想添加另一列名为 Action 的列 其值如下 如果 Status Yes 则 Action Go 否则 Action Stop 我使用以下代码添加到 操作 列中 但它不起作用 myDataTable Co
  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • 如何保证对象只有一个线程

    我有以下代码 class Service public void start creates thread which creates window and goes to message loop void stop sends WM C
  • 我如何理解这个 C 类型声明?

    double bar int double double double double 在查看讲座幻灯片时 我发现了留给学生的练习 用简单的英语来说 什么是类型bar在这个 C 声明中 Please帮助我解决这个问题 我什至不知道从哪里开始
  • 为什么在创建矩阵类时使用向量不好?

    对于我的矩阵类 我做了 template
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 类特定的新删除运算符是否必须声明为静态

    标准中是否要求类特定的 new new delete 和 delete 是静态的 我可以让它们成为非静态成员运算符吗 为什么需要它们是静态的 它们被隐式声明为静态 即使您没有键入 static
  • 与 Qt 项目的静态链接

    我有一个在 Visual Studio 2010 Professional 中构建的 Qt 项目 但是 当我运行它 在调试或发布模式下 时 它会要求一些 Qt dll 如果我提供 dll 并将它们放入 System32 中 它就可以工作 但
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • 时间:2019-03-17 标签:c#ThreadSafeDeepCopy

    我一直在阅读很多其他问题以及大量谷歌搜索 但我一直无法找到明确的解决方案 根据我读过的一些最佳实践 类的静态方法应该创建线程安全的 并且实例成员应该将线程安全留给消费者 我想为该类实现深度复制方法 该类本身还有其他引用类型成员 有没有什么方
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 如何从文本文件读取整数到数组

    这就是我想做的 我对此有些不满 但我希望你能容忍我 这对我来说是一个非常新的概念 1 在我的程序中 我希望创建一个包含 50 个整数的数组来保存来自文件的数据 我的程序必须获取用户的文档文件夹的路径 2 文件的名称为 grades txt
  • 检查 RoutedEvent 是否有任何处理程序

    我有一个自定义 Button 类 当单击它时 打开特定窗口 它总是执行相同的操作 我添加了一个可以在按钮的 XAML 中分配的 Click 事件 就像常规按钮一样 当它被单击时 我想执行 Click 事件处理程序 如果已分配 否则我想执行默
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 我可以让 ungetc 取消阻止阻塞的 fgetc 调用吗?

    我想在收到 SIGUSR1 后使用 ungetc 将 A 字符重新填充到标准输入中 想象一下我有充分的理由这样做 调用 foo 时 stdin 中的阻塞读取不会被收到信号时的 ungetc 调用中断 虽然我没想到它会按原样工作 但我想知道是
  • 使用restsharp序列化对象并将其传递给WebApi而不是序列化列表

    我有一个看起来像的视图模型 public class StoreItemViewModel public Guid ItemId get set public List
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中

随机推荐

  • 为什么这里除以零没有触发异常?

    这是一个后续问题为什么这个异常没有打印出来 为什么显示错误 https stackoverflow com questions 12130659 why is this exception is not printed why is it
  • 鉴于 GPU 有任务队列并且是异步的,计算 FPS 的正确方法是什么?

    我始终认为计算 FPS 的正确方法是简单地计算绘制循环迭代所需的时间 互联网上的大部分内容似乎都是一致的 But 现代显卡被视为异步服务器 因此绘制循环会发出 GPU 上已有的顶点 纹理 等数据的绘制指令 这些调用不会阻塞调用线程 直到 G
  • 带分隔符的 Flutter 组列表视图

    我正在寻找一些指导来创建带有分隔符的列表视图 例如 我想从按日期分组的数据库中获取消息 并用一些图形或线条等按日期分隔消息 然后将消息放在分隔符下 在颤振中尝试这一点 任何正确方向的指导或推动将不胜感激 简单地说ListItem into
  • MaterialiseCSS 中的砌体

    我想知道是否有任何方法可以在类似砖石的显示器中显示 MaterializeCSS 卡片 我想避免像 masonry 这样的插件 或者必须编译 sass 因为这将在 aurelia 应用程序上使用 而外部库的配置等让我非常痛苦 我遇到过的最接
  • 错误代码尝试从不存在的源进行复制

    因为我在这里关注 VS code 插件 扩展教程您的第一个扩展 Visual Studio 代码扩展 API https code visualstudio com api get started your first extension
  • ArrayList 未在 onChildAdded 函数内更新

    public class DataService private static DataService ourInstance new DataService private DatabaseReference mDatabase publ
  • execvp 返回后,为什么我的程序没有从中断处继续执行?

    我有一个像这样的代码块作为子线程运行 if someVar 1 doSomeStuff exit 0 else execvp temp gt arguments temp gt arguments printf I m done n 当我使
  • 如何在 SVG 中创建无限动画循环

    我是 SVG 动画新手 我尝试将组元素旋转 8 次 45 45 90 135 180 225 270 315 360 下面的示例对我来说效果很好 但是如何创建整个动画的无限循环 现在它只运行一次 我对其他可能性持开放态度 提前致谢
  • 无法在通知服务扩展中使用 pod

    我正在创建一个通知扩展 按照规范添加目标并在其中添加一个 pod 如下所示 Step 1 target MyProject do Integration Frameworks pod Fabric pod Crashlytics pod M
  • 是否有 Angular 的 json 格式化程序(指令/组件)?

    我正在将应用程序从 AngularJS 升级到 Angular 在 AngularJS 中我使用了https github com mohsen1 json formatter https github com mohsen1 json f
  • Google 云存储:将字符串上传到 GCS 时 CRC32C 和 MD5 不匹配

    尝试上传 JSON 字符串并覆盖 GCS 存储桶中的现有对象时 出现以下错误 google api core exceptions BadRequest 400 POST https storage googleapis com uploa
  • 如何在 PHP 中使用 set_error_handler 捕获未定义的函数

    我正在迈出一步 我的 PHP 脚本都会优雅地失败 至少 这是我所希望的 我不想 实际上 将每一行换行try catch语句 所以我认为最好的选择是为文件的开头创建一个自定义错误处理程序 我正在练习页面上测试它 function custom
  • 使用 sed 替换相同长度的文本

    有没有办法使用 sed 替换具有相同长度的其他内容 例如点 零等 的模式 像这样 maci san echo She sells sea shells by the sea shore sed s sh a z gI sells sea b
  • 自定义 ListView 在单击时不突出显示 ListViewItem

    我有一个由 ImageView 和 TextView 组成的自定义列表视图 单击效果很好 但它不会像普通 ListView 那样突出显示该项目 我该如何添加亮点 我尝试通过在单击时设置背景颜色然后添加计时器来删除背景颜色来对其进行装配 这有
  • StorageServiceAccountSample 应用程序报告“未找到 KeyStore JKS 实现”

    第一行存储服务帐户示例 http samples google api java client googlecode com hg storage serviceaccount cmdline sample instructions htm
  • Antlr4 语言翻译 - 将模板逻辑与访问者类分开?

    我正在考虑实用地将大量相对简单的 TSQL 代码转换为 Groovy 代码 肯定有很多原因 但驱动因素只是想看看是否可以完成 并在此过程中了解编译器 语法 等 Antlr4 似乎是解决这个问题的理想工具 Java 是一个优点 标记化 解析
  • 从 LiveData 观察者调用时,导航组件默认后退堆栈不起作用

    我正在使用带有导航抽屉的 Android 导航组件 如 Android Studio 模板中所示 我有片段 A B C 作为顶级片段 用于导航抽屉 片段 Z 与导航图中的片段 A 连接 现在我在片段 A 中有一个按钮 单击该按钮将使用安全参
  • 龙目岛项目有哪些风险?

    我正在制定新的一年的性能目标 并且我认为减少代码库 尤其是样板文件 大小的目标会很有趣 我想出解决这个问题的一个行动是使用龙目岛计划 http projectlombok org 使豆子尽可能短 但我习惯于忽视新软件和方法的缺点 因此我依赖
  • 如何发送对象作为查询并在 MERN 堆栈中使用 $all 运算符?

    我正在尝试使用 MERN 堆栈为我的网络应用程序创建一个过滤系统 目前 我能够接收用户对要过滤的内容的请求 接收该数据 查看用户输入的数据 因为用户还可以在特定类别中指定 任何 这意味着它将发送一个空字符串或数组到后端 解析该数据并将其转换
  • 如何刷新 Entity Framework Core DBContext?

    当我的表被另一方更新时 dotnet core中的数据库上下文仍然返回旧值 如何强制刷新数据库上下文 我做过研究 但我只发现人们使用Reload强制刷新上下文的方法 EF core 中不可用 其他一些解决方案建议在使用后处置上下文 但我收到