回滚事务与 LINQ to SQL 有何关系?

2024-06-22

问题只是关于回滚更改,而不是提交。

假设我获取一些数据,更改它们,提交更改(可选步骤)并回滚事务。无论您在哪里查看每个作者的写作,都会取消更改。

但我发现这句话只对了一半——LINQ DataContext 将保留更改后的数据!我使用 TransactionScope 和 DataContext.Transaction 对此进行了测试。在这两种情况下我都有相同的行为。

解决方法是在回滚后重新创建 DataContext(但这会导致其他问题,例如缓存数据和处理嵌套事务)或手动丢弃 DataContext 中的更改。然而,这些只是解决方法。

问题

那么我错过了什么? LINQ to SQL 不适合事务吗?如何使用交易以便他们REALLY回滚更改?

Example

                MyTable record = null;

                db.Connection.Open();
                using (db.Transaction = db.Connection.BeginTransaction())
                {
                        record = db.MyTable.First();
                        record.BoolField = !record.BoolField; // changed
                        db.SubmitChanges();
                        db.Transaction.Rollback();
                }

数据上下文应被视为一个工作单元。如何granular这取决于你——它可以是一个页面请求,也可以是一个单一的操作;但是 - 如果你遇到异常(或几乎任何意外情况) -stop;放弃数据上下文并回滚。回滚后,您的数据上下文将会变得混乱,所以只需不要保留它.

此外;不要将数据上下文保留的时间超过必要的时间。它并非旨在用作应用程序长的数据缓存。

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

回滚事务与 LINQ to SQL 有何关系? 的相关文章

随机推荐

  • 日期时间转换 - 如何提取推断的格式?

    这是日期时间值的数组 array np array 2016 05 01T00 00 59 3 10 00 2016 05 01T00 02 59 4 10 00 2016 05 01T00 03 59 4 10 00 2016 05 01
  • 单独类中的 MouseListener 不起作用

    我有单独的类来处理鼠标侦听器 但当我从另一个类使用它时它不起作用 我还不知道如何解决这个问题 这是我的处理程序类 some import stuff public class Handler implements MouseListener
  • 在 angularjs 中使用 $dirty 来检查何时编辑表单

    我试图通过编写表单的某些字段来检查何时编辑表单 我读到 dirty 应该适用于该任务 但我不知道我在这里缺少什么 div div
  • 无法使用 Net::HTTP 在我的 ruby​​ 代码中发出 HTTP 删除请求

    我在 ruby 代码中使用 Net HTTP 来发出 http 请求 例如 我要发出一个帖子请求 require net http Net HTTP post form url email gt email password gt pass
  • 将矩阵 csv 数据导入 R - 如何转换为数据框

    我有一组以矩阵格式保存的 csv 数据附图是矩阵的示例 https i stack imgur com kTIN6 png我想将数据加载到 R 中并将其存储为包含 x Year x Death x ASMR 的数据框 我怎样才能做到这一点
  • API Gateway Websockets - 处理 10 分钟空闲连接超时

    我有简单的聊天室应用程序 如果没有用户发送任何消息 Websocket 将在大约 10 分钟后关闭 在不重新连接的情况下保持连接活动的最佳解决方案是什么 总是可以发送 ping 对方必须用 pong 回复 proof https www r
  • 使用 ggplot2 y.axis.title 中的上标、粗体和颜色

    我遇到问题或使用时发生冲突 ylab expression paste log Biovolume m 3 L 1 opts axis title y theme text size 16 face bold colour black an
  • 可以使用 MDM 安装配置文件

    Apple 的移动设备管理协议参考在第 44 页底部说明 第三方企业应用程序需要配置配置文件才能运行 您可以使用 MDM 提供这些配置文件的最新版本 以便用户不必手动安装这些配置文件 在配置文件过期时进行替换等 为此 请通过 MDM 交付配
  • 使用实体框架查找 SQL 表中的所有重复记录

    我想创建一个数据网格 其中包含所有同名的记录 我有这张表 Shop ID name adress city 1 name1 adress 1 city1 2 name 2 adress2 city2 3 name 2 4 name 2 ci
  • 如何将 HTTP(而非 HTTPS)与 RequestBin 结合使用

    我想使用请求Bin https requestb in用于 HTTP 而非 HTTPS 调试的工具 但是 它似乎不支持它 例如 curl http requestb in 1eqnllm1 vvvv Hostname was NOT fou
  • 防止 bootbox 关闭弹出窗口

    我正在使用 bootbox 制作带有表单的弹出窗口 我必须验证它们并在表单字段出现问题时向用户抛出错误 但我无法阻止用户单击 后启动箱窗口关闭 Send 按钮 我需要向用户显示错误通知 以便可以更正错误并再次发送表单 return fals
  • CSS - 水平滚动上的粘性div?

    我有一个包含这样的表单的 div 下面的结果表很宽 所以需要水平滚动 如何使表单 div 具有粘性 以便当我水平滚动结果时表单保持在顶部 仅找到有关垂直滚动的文档position sticky 但没有关于水平滚动的信息 欢迎任何建议 尝试使
  • 将 Leaflet 图像映射到横向视口的边界视图

    我有一个 16384x16384 的方形图像 已使用 MapTiler 将其切成图块 以在 Leaflet 中创建 6 级缩放 我在Leaflet中设置的图像如下 var map L map map maxZoom 6 minZoom 0
  • 在 NSUserDefaults 中存储 NSDate 的最佳方式是什么?

    我遇到过两种在 NSUserDefaults 中存储 NSDate 的方法 选项 1 setObject forKey Set NSDate myDate NSDate date NSUserDefaults standardUserDef
  • 找到三角测量时覆盖另一个点的最近 3 个点的算法

    想象一张画布 周围随机分布着一堆点 现在选择其中一点 您如何找到距离它最近的 3 个点 这样如果您画一个连接这些点的三角形 它将覆盖所选点 澄清 我所说的 最近 是指到该点的最小距离总和 这主要是出于好奇 我认为 如果一个点未知 但周围的点
  • Visual Studio 2012 网络共享

    我使用 Parallels 在虚拟机上模拟 Windows 8 为了简单性和连贯性 我将所有开发人员项目存储在 Mac 的分区上 当我尝试构建一个在此网络共享上运行的应用程序 Visual Studio 2012 时 出现以下编译时错误 E
  • 确保语句仅在按住某个键时执行一次。

    如果按住数字键盘上的 5 键 它将继续执行 KeyDown 事件处理程序中的语句 即使我按住该键 如何确保该语句仅执行一次 感谢您的关注 private void form KeyDown object sender System Wind
  • 在解决承诺之前已提交指令

    我在获取指令时遇到问题 仅在我的承诺得到解决后才呈现其内容 我想then 本来应该这样做 但它似乎不起作用 这是我的控制器 Generated by CoffeeScript 1 6 3 function var sprangularCon
  • 等待 Promise 和嵌套 then 完成

    我从这样的函数返回一个承诺 resultPromise dgps utils save opportunity api Opportunity Save opportunity dirtyFlag then function self ch
  • 回滚事务与 LINQ to SQL 有何关系?

    问题只是关于回滚更改 而不是提交 假设我获取一些数据 更改它们 提交更改 可选步骤 并回滚事务 无论您在哪里查看每个作者的写作 都会取消更改 但我发现这句话只对了一半 LINQ DataContext 将保留更改后的数据 我使用 Trans