Linq2SQL 处理具有唯一约束的表上的插入/删除

2023-11-27

我有一个如下所示的表:

TABLE Foo
{
  Guid Id [PK],
  int A [FK],
  int B [FK],
  int C [FK],
}

以及对 A、B 和 C 的唯一约束。

现在举例来说,您插入带有新 PK 的行,其中 A = 1、B = 1、C = 1。

SubmitChanges(),皆大欢喜。

现在您编辑该表。

您删除之前的条目,并插入一个 fresk PK 为 A = 1、B = 1、C = 1 的行。

SubmitChanges()繁荣!唯一键约束 SQL 异常。

据我所见,它尝试首先插入新记录,然后尝试删除前一条记录。我什至可以理解,不可能确定这需要发生的顺序。

但我能做什么呢?将这 3 个字段设为复合 PK(并删除旧字段)会是更好的解决方案还是根本不起作用?

目前,“解决方案”是从数据库中删除唯一约束(但我宁愿不这样做)。


一种选择是创建一个事务(连接绑定事务,或者TransactionScope) - 删除记录并SubmitChanges,添加记录并SubmitChanges,然后最后提交事务(或者如果崩溃则回滚)。

请注意,您可以通过数据上下文构造函数 IIRC 关联连接绑定事务。TransactionScope应该也能工作,而且更容易做到——但效率不那么高。

或者,编写一个在数据库中执行此交换作业的 SP,然后访问该 SPvia数据上下文。

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

Linq2SQL 处理具有唯一约束的表上的插入/删除 的相关文章

  • 使用 JSON 格式正确配置 NLog 到 IHostBuilder

    我有以下代码 应该接受 NLog 的 JSON appsettings 配置 然后使用它来创建 NLog LogFactory 这个 NLog 工厂应该被传递到 MyService 类中 以便在那里创建一个记录器 class Program
  • 每次调用新方法时触发事件

    我正在做一个logger for a c 应用程序需要记录每个方法被调用的时间以及每个方法执行时间 我可以通过调用自己的方法来做到这一点EventLogger LogMethodCall方法在每个方法的开头 但我想知道是否有办法使CLR每次
  • 在 DataGridView 中隐藏行非常慢

    我在 Winforms 应用程序中有一个 DataGridView 大约有 1000 行 未绑定 和 50 列 隐藏一列需要整整 2 秒 当我想隐藏大约一半的行时 这就成为一个问题 private void ShowRows string
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • 在 C# 中调用事件处理程序

    我一直在尝试学习如何在 C 中使用事件处理程序 但我无法弄清楚 handler this e 在以下代码中的作用 public event EventHandler ThresholdReached protected virtual vo
  • 使用 size_t 值反向遍历向量

    我想以相反的方向遍历向量的值 如您所知 向量的大小为 size t 当我使用以下代码时 for size t r m size 1 r gt 0 r x r f r for size t c r 1 c lt m size c x r m
  • 求一个数的因数。无法得到准确的结果

    有人可以帮助纠正我的算法吗 我已经对几个数字进行了测试 但它没有输出完整的因式分解 对于具有大量因子的数字 它完全失败 int num 20 for int i 2 i lt num i if num i 0 cout lt lt i lt
  • 在 C++ 中使用表达式模板进行符号微分

    如何在 C 中使用表达式模板实现符号微分 一般来说 您需要一种表示符号的方法 即编码的表达式模板 例如3 x x 42 以及一个可以计算导数的元函数 希望您对 C 中的元编程足够熟悉 知道这意味着什么和需要什么 但可以给您一个想法 This
  • 如何填充两个样条线或直线系列之间的区域

    我有这个Chart 如何填充两个之间的区域Series S0 and S1 说蓝色和黄色Series 为此 我们编写了其中之一Paint事件 这里的ValueToPixelPosition https msdn microsoft com
  • 使用 INotifyPropertyChanged

    有人可以解释一下为什么在 wpf 中使用绑定时需要使用 INotifyPropertyChanged 的 实现吗 我可以在不实现此接口的情况下绑定属性吗 例如我有代码 public class StudentData INotifyProp
  • 带双重检查锁的单例设计模式

    假设您有以下代码 1 为什么我们使用双重检查锁 为什么单锁不够好 请提供详细的例子 2 这种实施方式的主要缺点是什么 我该如何证明呢 Thanks public sealed class SomeSingleton5 private sta
  • Visual Studio Code 调试默认 ASP.NET Core MVC WebApp:不起作用

    我正在使用 Manjaro linux 并尝试调试默认的 ASP NET Core MVC 项目 但调试停止 没有任何错误 我创建了该项目 dotnet new mvc in a Meow文件夹 没什么特别的 然后添加了新的配置 NET C
  • printf() 使用字符串表“解码器环”调试库

    我写这封信是想看看你们中是否有人见过或听说过我即将描述的想法的实现 我有兴趣为嵌入式目标开发 printf 风格的调试库 目标非常遥远 并且我和目标之间的通信带宽预算非常紧张 因此我希望能够以非常有效的格式获取调试消息 通常 调试语句如下所
  • 数组与映射的性能

    我必须循环一个大数组中的元素子集 其中每个元素都指向另一个元素 问题来自于检测大图中的连接组件 我的算法如下 1 考虑第一个元素 2 将下一个元素视为前一个元素所指向的元素 3 循环直到没有发现新元素 4 考虑1 3中尚未考虑的下一个元素
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • 字符串 c 的二叉树

    我正在尝试实现一个能够在 c 中保存字符串的二叉树 在让代码适用于整数之后 我尝试稍微修改它以处理字符数组 现在我似乎完全破解了代码 但不知道如何破解 任何帮助表示赞赏 include
  • 未找到 _sqlite3_open 等符号错误

    您好 我收到此错误 Undefined symbols sqlite3 open referenced from main in ccRlWVer o sqliite3 close referenced from main in ccRlW
  • 为什么调试器只显示数组指针中的一个元素?

    首先 我知道new是执行此操作的 C 方法 我只是表明有不止一种方法可以重现此错误 而且两种方法都令人难以置信的令人沮丧 我有两种形式的源文件 我正在尝试调试另一个编程作业 但我并没有寻求帮助 基本上 我正在尝试重新实施set作为一个类 具
  • OpenGL 计算着色器调用

    我有一个与新计算着色器相关的问题 我目前正在研究粒子系统 我将所有粒子存储在着色器存储缓冲区中 以便在计算着色器中访问它们 然后我派遣一个一维工作组 define WORK GROUP SIZE 128 shaderManager gt u
  • 获取会议组织者邮件地址 EWS API

    我想使用 EWS API 获取会议组织者的邮件地址 目前 我刚刚获得约会项目的一些属性 我听说你可以设置你想要获取哪些属性 我的代码看起来像这样 CalendarView cview new CalendarView start end c

随机推荐

  • if 语句中 i++ 与 i=i+1 有什么区别? [复制]

    这个问题在这里已经有答案了 对于第一个代码 int i 1 while i lt 10 if i 2 0 System out println i 系统输出 3 5 7 9 对于第二个代码 int i 1 while i lt 10 if
  • UIViewController 中嵌入的 UIHostingController - 如何从外部更新 @State?

    我正在使用一个UIHostingController镶嵌ContentView inside ViewController 我想更改名称ContentView s name当按下 更改名称 按钮时 这是我的代码 class ViewCont
  • .NET 中非矩形形式的平滑边缘

    我使用 Form Region 创建了一个带有圆角的表单 它有效 但不幸的是四舍五入看起来很粗糙 有什么技巧可以平滑这种形状的角吗 我知道很多应用程序都支持这一点 只是不确定如何在 NET 中实现它 多谢你们 对此没有好的解决办法 区域无法
  • gcloud app 部署错误:获取应用程序 [apps/] 时出现权限错误

    我通过发出以下命令来部署一个简单的 Python 3 App Engine 应用程序 Flexi 环境 gcloud app deploy version ver0 1 并出现以下错误 ERROR gcloud app deploy Per
  • 更改 JOptionPane 中的确定取消字符串

    我想知道是否可以将 确定取消 按钮更改为java中的自定义字符串 我有 JOptionPane showConfirmDialog message title JOptionPane OK CANCEL OPTION 现在 按钮将显示 确定
  • 修改节点进程环境或参数运行时

    是否可以修改process 例如process argv push something 似乎其他模块没有接收参数中的更改 我想 欺骗 另一个模块 使其表现得像进程启动时指定了某个参数一样 进程是否为加载时的每个模块进行实例化 因此全局不可变
  • 在 React Native 中从本地 json 文件导入文本

    我想知道常见的方法是将巨大的文本导入视图 就我而言 我正在为 Android 和 iOS 开发一个 React Native 应用程序 并且在我的视图之一上我想展示 使用条款 文档 现在 当我只是将其导入 复制粘贴到文本组件中时 它就不是正
  • IE7 中 100% 宽度的文本区域忽略父元素的宽度

    我有以下内容textarea in a table table width 300 tr td td tr table
  • 解释 VS 描述 mysql 中的异常

    MySQL 中的 EXPLAIN 和 DESC 命令有什么区别 Explain会给你更多 有关查询的信息 describe会给你更多 有关表或列的信息 您还可以对表名使用 EXPLAIN 在这种情况下 它的行为与 DESCRIBE 完全相同
  • 如何使用 Javascript 延迟提交表单

    我正在尝试在我正在编写的 chrome 扩展中延迟自动提交表单 但它似乎没有提交 下面是我的表单和 javascript function submitForm submits form document getElementById is
  • 完整 .Net 中的实体框架核心?

    有没有办法在完整的 Net Framework 控制台应用程序中实现 Entity Framework Core 首先 您需要创建具有完整 net 框架的控制台应用程序 其次使用包管理器控制台安装这些包 Install Package Mi
  • 将 RDD[org.apache.spark.sql.Row] 转换为 RDD[org.apache.spark.mllib.linalg.Vector]

    我对 Spark 和 Scala 比较陌生 我从以下数据框开始 由密集的双精度向量组成的单列 scala gt val scaledDataOnly pruned scaledDataOnly select features scaledD
  • 为什么我们需要 IEEE 754 余数?

    我刚刚读过这个话题 尤其是最后的评论 然后我想知道 为什么我们真正需要这个是为了给剩下的 但似乎之前没有多少人 在谷歌上 对此感兴趣 如果您正在寻找想要它的原因 其中之一就是所谓的 范围缩小 假设你想要sind用于计算参数正弦值 以度为单位
  • Azure 上的 Django 应用程序未获取静态文件

    在 Azure Web 应用程序上获取了我的 Django 项目 但是当我在 SSH 终端上调用时 Python 管理 py 收集静态 它说复制了 252 个文件 但我的静态文件在我的模板上不可见 并且 wwwroot 中的静态文件夹是空的
  • 删除所有文件和文件夹但排除子文件夹

    我有一个文件夹 需要删除除一小部分文件和文件夹之外的所有文件和文件夹 我已经可以排除文件列表 但没有找到排除文件夹及其内容的方法 这是文件夹结构 C temp C temp somefile txt C temp someotherfile
  • 在字符串内包含引号?

    我正在尝试将引号包含在字符串中以添加到文本框 我正在使用此代码 t AppendText Dim Choice count As String Your New Name is pt1 pt2 vbNewLine 但它不起作用 我希望它像这
  • 从大型数据集中随机采样

    我从一个大型数据库中提取了研究人群 为了进行比较 我想选择一个具有相似特征的对照组 我想要匹配的两个标准是年龄和性别 为我提供用于匹配目的的数字的查询是 select sex age 10 as decades COUNT as count
  • URL/子域重写 (htaccess)

    假设我有以下文件 http www example com images folder image jpg 我想把它放在 http s1 example com folder image jpg 我如何进行 htaccess 重写以将其指向
  • GAE交易失败和幂等性

    Google App Engine 文档包含以下段落 注意 如果您的应用程序在提交时收到异常 交易失败并不总是意味着交易失败 你 可以接收DatastoreTimeoutException ConcurrentModificationExc
  • Linq2SQL 处理具有唯一约束的表上的插入/删除

    我有一个如下所示的表 TABLE Foo Guid Id PK int A FK int B FK int C FK 以及对 A B 和 C 的唯一约束 现在举例来说 您插入带有新 PK 的行 其中 A 1 B 1 C 1 SubmitCh