如何刷新 DbContext

2024-03-06

我想刷新我的所有实体DbContext在没有重新创建它的情况下,我尝试了以下操作,但没有一个有意义:

var context = ((IObjectContextAdapter)myDbContext).ObjectContext;

var refreshableObjects = (from entry in context.ObjectStateManager.GetObjectStateEntries(
                                   EntityState.Added
                                   | EntityState.Deleted
                                   | EntityState.Modified
                                   | EntityState.Unchanged)
                          where entry.EntityKey != null
                          select entry.Entity);

context.Refresh(RefreshMode.StoreWins, refreshableObjects);
//.......................................................................
foreach (var entry in this.Orm.ChangeTracker.Entries())
{
    entry.State = EntityState.Unchanged;
}
this.Orm.ChangeTracker.DetectChanges();

也是唯一能让我耳目一新的DbContext:

foreach (var i in this.Orm.ChangeTracker.Entries())
    i.Reload();

但这太慢了。你能帮我选择正确的方式吗?


我刚刚发现Enumerable应该评估结果,因为Refresh方法将其作为对象获取并且不对其进行评估。

var context = ((IObjectContextAdapter)myDbContext).ObjectContext;
var refreshableObjects = (from entry in context.ObjectStateManager.GetObjectStateEntries(
                                           EntityState.Added
                                           | EntityState.Deleted
                                           | EntityState.Modified
                                           | EntityState.Unchanged)
                          where entry.EntityKey != null
                          select entry.Entity).ToList();

context.Refresh(RefreshMode.StoreWins, refreshableObjects);

我更喜欢以下内容:

var refreshableObjects = myDbContext.ChangeTracker.Entries().Select(c=>c.Entity).ToList();
context.Refresh(RefreshMode.StoreWins, refreshableObjects);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何刷新 DbContext 的相关文章

  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 传送 Wav 音频数据的 DirectShow 过滤器的媒体类型设置是否正确?

    我使用 Delphi 6 Pro 和 DSPACK DirectShow 组件库来创建一个 DirectShow 过滤器 该过滤器从自定义音频源提供 Wav 格式的数据 需要明确的是 我将原始 PCM 音频样本作为字节数据提供 不涉及 Wa
  • 有条件导入范围

    使用 Google Sheets 我想在同一文档中使用带条件的 IMPORTRANGE 将数据从一张工作表导入到另一张工作表 我尝试过但没有成功 IF IMPORTRANGE https URL Inc Database B2 B300 p
  • Magento 异常错误:无效方法 Mage_Catalog_Block_Product_View_Type_Simple::displayProductStockStatus()

    我尝试在我的 magento 系统上安装主题 当我尝试打开产品页面时 它向我显示错误 出于安全原因 默认情况下禁用异常打印 请帮我 错误 Invalid method Mage Catalog Block Product View Type
  • 强制 AVX 内在函数使用 SSE 指令

    不幸的是 我有一个 AMD 打桩机 cpu 它似乎对 AVX 指令有问题 使用 256 位 AVX 寄存器进行内存写入非常慢 测得的吞吐量比之前的型号 Bulldozer 慢 5 6 倍 比两次 128 位写入慢 8 9 倍 根据我自己的经
  • 如何在eclipse中生成构造函数

    我有一个类 A 和 B M 扩展 A 现在我想使用 eclipse 的代码生成选项创建 B 的构造函数 它接受 B 的所有字段的参数和设置值 我的意思是它还应该设置从 A 继承的字段 在eclipse中是否有生成此类代码的快捷方式 在编辑器
  • (int (*)[])var1 代表什么?

    我找到了这个示例代码 我尝试用谷歌搜索什么 int var1可以代表 但我没有得到有用的结果 include
  • 将直方图的条形以标签为中心对齐

    出于布局原因 我想将直方图条放置在标签的中心 这样条的中间位于标签的顶部 library ggplot2 df lt data frame x c 0 0 1 2 2 2 ggplot df aes x geom histogram bin
  • 我如何获取字节数组的前“n”个元素并将它们直接转换为字符串?

    我有一个由 1024 个元素组成的字节数组 我想将其分解为不同的字符串私有成员 例如 前 9 个字节用于名称 接下来的 12 个字节用于用户 ID 等 无需将整个字节数组转换为字符串 然后使用子字符串方法 有什么方法可以将数组中的一系列字节
  • 暂停反应本机博览会音频?

    我运行音频没有问题 但暂停它时遇到问题 如果有人可以提供帮助那就太好了 async function playMusic const soundObject new Audio Sound console log Being hit try
  • “参数类型‘C’可能不会存在足够长的时间”,当它不需要时

    我正在用 Rust 编写非常基本的人工智能系统 其主要组成部分有 Actions 可以由库用户实现 用于特定用途 Generic Context 它被传递给所有动作 并且只需要在动作执行期间存在 ActionsContainer 它 全局
  • Java 中的基数参数是什么?它是如何工作的?

    我理解该函数的基数Integer parseInt 是将字符串转换成的基数 用基数 基数 16 转换的 11 基数 10 不应该是B代替17 下面的代码根据课本打印17 public class Test public static voi
  • iOS显示tableview标题图像(视差效果)

    我正在尝试设置一个大图像 随着表格视图进一步拉低 可以显示更多信息 我知道我没有任何意义 它更容易显示我从 netbot 记录的一个例子 http vine co v bdKrALdOheD 请让我知道正确的术语是什么 我将更新标题 Upd
  • Task.perform 期望第三个参数是不同的类型

    我正在尝试将 Elm 教程改编为我自己的小项目 但我在使用我提供的 Json Decoder 时遇到了麻烦 我的代码如下所示 type Msg RetrieveComments FetchSucceed String FetchFail H
  • Hibernate:多个结果集

    从我在 Hibernate 文档 在线中读到的内容来看 听起来 Hibernate 没有处理多个结果集的能力 我希望在依赖 Hibernate 的应用程序中进行 MySQL DB 调用 这将返回多个结果集 您使用过哪些解决方案可以与 Hib
  • Eclipse 不会将 jar 部署到 WEB-INF/lib 目录中

    为了将 JSF 与 Spring 集成 我在中添加了这些行web xml
  • 使用 prometheus 和 grafana 跟踪事件

    有一篇文章 跟踪每个版本 https codeascraft com 2010 12 08 track every release 它讲述了如何在每个代码部署的图表上显示一条垂直线 他们正在使用石墨 我想用 Prometheus 2 2 和
  • OpenCV 从 BGR 颜色转换为灰度时出错

    我正在尝试使用以下代码将图像从 BGR 转换为灰度格式 img cv2 imread path to image file gray cv2 cvtColor img cv2 COLOR BGR2GRAY 这似乎工作正常 我检查了数据类型i
  • 没有 php.ini 与brew

    我用brew安装了PHP7 它说 The php ini file can be found in usr local etc php 7 0 php ini 但我在那里什么也没看到 所以我确认了php fpm i Configuratio
  • 嵌入、嵌入高级或动态地图之间的区别

    我正在使用 Google Maps Javascript API 将地图添加到网站 现在 当谷歌改变他们的价格时 我不确定我的极限是多少 这site https cloud google com maps platform pricing
  • 如何刷新 DbContext

    我想刷新我的所有实体DbContext在没有重新创建它的情况下 我尝试了以下操作 但没有一个有意义 var context IObjectContextAdapter myDbContext ObjectContext var refres