1

我使用 LINQ to SQL 在我的 DB 上的表上插入数据,其中 2 列上有唯一键。当我尝试插入已插入此唯一键的行时,我得到:

无法在具有唯一索引“IX_613_LiveLove”的对象“dbo.613_LiveLove”中插入重复的键行。重复键值为 (35715346455553, paul)。该语句已终止。

我不想要这个错误消息,只是“LINQ to SQL,不插入它”并继续该过程。

有没有办法做到这一点?或者我需要使用 try/catch 吗?

4

2 回答 2

1

使用尝试捕获。捕获特定的异常类型,并抛出您自己的异常(您可能想要创建自己的异常类型),包括您的自定义消息。在您想要继续该过程的代码位置,只需捕获该异常即可。

于 2013-07-17T09:02:52.253 回答
1

这可能会有所帮助:http: //msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic18

“...数据库检测到的任何错误都将导致提交过程中止并引发异常。对数据库的所有更改都将回滚,就好像从未发生过任何提交一样。DataContext 仍将具有完整的记录所有更改,以便可以尝试纠正问题并通过再次调用 SubmitChanges() 重新提交它们..."

于 2013-07-17T09:05:56.983 回答