我有一个简单的表格,其中包含以下内容:
ID MarketID Lead
1 1 true
2 1 false
3 2 true
4 2 false
它是一个成对值的表,所以模式是总是有两行具有相同的 MarketID,但一个必须为假 (0),一个必须为真 (1)。这是通过按预期工作的唯一键约束(确保 MarketID 和 Lead 组合是唯一的)强制执行的。
但是,我希望用户能够更改“Lead”列并切换值。
在我调用 SubmitChanges 之前,我的工作正常:
table.AttachAll(updated);
table.Context.Refresh(RefreshMode.KeepCurrentValues, updated);
table.Context.SubmitChanges();
更新的地方是两个更改的行
快速查看 SQL Profiler 显示 SQL Server (2008) 正在逐行更新,因此它首先将 true 值更新为 false,但在将第二行的 false 值更改为 true 之前,它会导致中断并失败, 因为现在两者都设置为 false。
有人知道解决这个问题的方法吗?