DbContext 放弃更改而不进行处理

2023-12-03

我有一个桌面客户端应用程序,它使用模式窗口来设置分层对象的属性。由于这是一个客户端应用程序,并且对 DbContext 的访问不是线程化的,因此我在主表单上使用了一个长期运行的上下文,该上下文被传递给模态子项。

这些模式窗口使用 PropertyGrid 显示实体属性,并且还具有取消按钮。如果修改了任何数据并按下了取消按钮,则更改将反映在父表单中(我无法在父表单中处理DbContext object).

有没有办法放弃所做的任何更改,如果DbContext.SaveChanges()方法尚未被调用?

UPDATE:实体框架版本 4.4。


public void RejectChanges()
    {
        foreach (var entry in ChangeTracker.Entries())
        {
            switch (entry.State)
            {
                case EntityState.Modified:
                case EntityState.Deleted:
                    entry.State = EntityState.Modified; //Revert changes made to deleted entity.
                    entry.State = EntityState.Unchanged;
                    break;
                case EntityState.Added:
                    entry.State = EntityState.Detached;
                    break;
            }
        }
    }

Update:

一些用户建议添加.ToList()以避免“集合已修改”异常。 但我相信这种例外是有原因的。

你如何得到这个异常?您可能正在以非线程安全的方式使用上下文。

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

DbContext 放弃更改而不进行处理 的相关文章

  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 如何将隐藏字段从一个页面传递到另一页面?

    我有一个 Net 类库 我想从一次代码隐藏页面传递一个隐藏变量 并在另一个代码隐藏页面中获取它 请注意 我没有任何可以使用表单标签和 get post 方法的设计页面 aspx 页面 我们应该怎么做 注意 我想使用隐藏字段将值从一页传递到另
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何在 C# 中从 UNIX 纪元时间转换并考虑夏令时?

    我有一个从 unix 纪元时间转换为 NET DateTime 值的函数 public static DateTime FromUnixEpochTime double unixTime DateTime d new DateTime 19
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 读取文件特定行号的有效方法。 (奖励:Python 手册印刷错误)

    我有一个 100 GB 的文本文件 它是来自数据库的 BCP 转储 当我尝试导入它时BULK INSERT 我在第 219506324 行上收到一个神秘错误 在解决此问题之前 我想看看这一行 但可惜的是我最喜欢的方法 import line
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • 回发或回调参数无效。使用“”启用事件验证

    当我从客户端回发页面时 出现以下错误 我有修改客户端 asp ListBox 的 JavaScript 代码 我们该如何解决这个问题 错误详细信息如下 Server Error in XXX Application Invalid post
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • PlaySound 可在 Visual Studio 中运行,但不能在独立 exe 中运行

    我正在尝试使用 Visual Studio 在 C 中播放 wav 文件 我将文件 my wav 放入项目目录中并使用代码 PlaySound TEXT my wav NULL SND FILENAME SND SYNC 我按下播放按钮 或
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • 将自定义 ValueProviderFactories 添加到 ASP.NET MVC3?

    我试图尝试将 Protobuf ValueProviderFactory 添加到 MVC3 以便我可以选择 MIME 类型并将原始数据反序列化为操作参数的对象 我还可以使用它来更改默认的 Json 序列化器 看着JsonValueProvi

随机推荐

  • ffmpeg未知关键字处理输入时发现无效数据

    我有一个文件ffmpeg list of files txt与内容 file Output 0 forces vs radii pdf file Output 1 forces vs radii pdf file Output 2 forc
  • 添加不同长度的熊猫列

    我在 pandas 中添加列时遇到问题 我有DataFrame 维度是nxk 在这个过程中 我需要添加维度为 mx1 的列 其中 m 1 n 但我不知道 m 当我尝试这样做时 df Name column data type data li
  • 什么时候使用括号,什么时候不使用?

    我怎么能说 var myFunction function setTimeout myFunction 1000 myFunction 为什么函数会调用setTimeout不需要括号 但最后一行需要吗 Nutshell myFunction
  • 确定两个 360x180 等距柱状全景图像之间的相机旋转

    我有 n 帧 360x180 全景图像 我想根据两个连续图像之间的比较来确定相机的旋转 对于这个项目 可以安全地假设图像中可见的所有特征都在无穷远 我 今天 是 OpenCV 的新手 肯定需要做更多的阅读 我有一个应用程序可以使用 SIFT
  • 在 Windows 上的软件中关闭 USB 设备的电源

    我想通过 Windows 上的软件重新启动 USB 设备 我正在开发一个小型 USB 电源微控制器 该芯片将在电源循环后恢复到本机行为并允许代码下载 由于我的代码会在出现问题时使设备崩溃 使其忽略所有 USB 命令 因此我必须从系统中物理拔
  • 将带有图像的 HTML5 画布另存为图像

    我正在尝试将带有图像的画布保存为 PNG 但是当我尝试这样做时 var myCanvas document getElementById myCanvas var img document createElement img var ctx
  • 带有自定义视图的 AlertDialog:调整大小以包裹视图的内容

    我在正在构建的应用程序中遇到了这个问题 请忽略所有设计缺陷和缺乏最佳实践方法 这纯粹是为了展示我无法解决的问题的示例 I have DialogFragment它返回一个基本的AlertDialog与定制View设置使用AlertDialo
  • jquery发送post数据而不定义url

    是否可以通过ajax或post发送数据而不定义url 这是我正在尝试工作的代码 gll delete click function var gll gll val var gll string gll split var gll id gl
  • jquery 替换不起作用

    DEMO 你好 我正在尝试删除 JS 中的箭头 但似乎替换不起作用 a class pr page prev Previous a a class pr page next Next a pr page prev text replace
  • 在 Windows 10 TP 上使用 VS-2015 CTP 5 和 Python 3.5a 编译 boost-python 教程

    我正在尝试获取boost python 扩展模块教程在 Windows 10 中使用现代 C 14 编译器 我已经使用 vc 14 VS 2015 CTP 5 下载了最新版本的 boost 1 57 和 python 3 5a 源代码 我使
  • c++ - SendInput() 无法正确管理 Alt 代码

    在我正在开发的程序中 我必须模拟击键 为此我使用SendInput 方法 传递一个向量作为参数 该向量包含作为击键一部分的输入 我当前的代码似乎可以与我正在测试的所有组合正常工作 Alt 代码除外 这就是我目前所做的 Press ALT i
  • PHP 数组转换为对象的效率?

    据我了解 PHPstdClass当代码嵌套得足够深以至于它实际上很重要时 对象通常比数组更快 如果我通过类型转换来定义 效率会受到怎样的影响stdClass飞行中的对象 var object array one gt 1 two gt 2
  • 从PDF中提取图像,如何处理JBIG2编码

    我有一堆 PDF 文件 其中一些是纯文本 但有些完全或部分保存为 每页一个图像 因为它们是从扫描仪生成的 我需要提取所有图像包含在 PDF 中 然后分别检查每个图像 我能够提取大部分图像在 SO 中找到一个 python 脚本 请参阅问题
  • 使用证书和 C# 连接到 Exchange Online

    有人使用 C 在线连接 Exchange 吗 我遇到了一个似乎无法取得进展的问题 我有以下代码片段尝试连接到在线交换 public Runspace getSpace String schema http schemas microsoft
  • Font Awesome 在本地工作,但在 Heroku 上不行

    所以我安装了 font awesome gem 一切看起来都很好 使用最新版本等 也包含在我的 application css 中 require font awesome 当我从本地查看时 结果很好并且字形图标出现了 当我将其上传到her
  • ASP.Net MVC 控制器在部署到 IIS 7 时导致“未找到”错误

    我正在使用 ASP Net MVC 开发一个网站 我在 Home 控制器中有一个方法 它在调用时返回部分视图 问题是当我使用 jQuery 调用控制器方法时 出现 404 Not Found 错误 仅当应用程序部署在 IIS 7 上时才会发
  • enableEventValidation 和 validateRequest 区别

    enableEventValidation 和 validateRequest 之间有什么区别 虽然前者是由控件引起的回发 回调 我假设只有服务器端 请告知 但后者是在每个请求上 这无论如何都是由控件回发引起的 或者 validateReq
  • Python中的数组是按值赋值还是按引用赋值?

    我想知道为什么当我删除原始数组时它会影响复制的数组 arr 1 2 3 arr1 arr del arr print arr1 this prints 但是当我修改原始数组的元素时 对复制的数组没有影响 arr 1 2 3 arr1 arr
  • 如何在 Bootstrap 弹出窗口中插入关闭按钮

    JS function example popover placement bottom html true title span class text info strong title strong span
  • DbContext 放弃更改而不进行处理

    我有一个桌面客户端应用程序 它使用模式窗口来设置分层对象的属性 由于这是一个客户端应用程序 并且对 DbContext 的访问不是线程化的 因此我在主表单上使用了一个长期运行的上下文 该上下文被传递给模态子项 这些模式窗口使用 Proper