我正在经历正是这个问题(并且我处于完全相同的痛苦世界):Linq to Sql update中的ChangeConflictException
我正在使用LinqToSQL提供SQL更新,并且由于NOCOUNT
被设置为ON
,因此ChangeConflictException
失败。
由于我的目标服务器上也有遗留数据库,我无法重新配置默认连接设置,因为在Linq to Sql更新中的ChangeConflictException中接受的答案中正确地说明了这一点。
我的问题是:如何说服LinqToSQL在执行更新之前运行SQL SET NOCOUNT OFF
?
这里有一个技巧。
你可以使用ExecuteQuery方法(从DataContext对象)来执行像ExecuteQuery<int>("SET NOCOUNT OFF SELECT 1");
这样的东西之后,你可以为你的对象(你想更新的对象)设置新的属性/属性,并调用SubmitChanges()。