我使用 LINQ to SQL 在我的 DB 上的表上插入数据,其中 2 列上有唯一键。当我尝试插入已插入此唯一键的行时,我得到:
无法在具有唯一索引“IX_613_LiveLove”的对象“dbo.613_LiveLove”中插入重复的键行。重复键值为 (35715346455553, paul)。该语句已终止。
我不想要这个错误消息,只是“LINQ to SQL,不插入它”并继续该过程。
有没有办法做到这一点?或者我需要使用 try/catch 吗?
我使用 LINQ to SQL 在我的 DB 上的表上插入数据,其中 2 列上有唯一键。当我尝试插入已插入此唯一键的行时,我得到:
无法在具有唯一索引“IX_613_LiveLove”的对象“dbo.613_LiveLove”中插入重复的键行。重复键值为 (35715346455553, paul)。该语句已终止。
我不想要这个错误消息,只是“LINQ to SQL,不插入它”并继续该过程。
有没有办法做到这一点?或者我需要使用 try/catch 吗?
使用尝试捕获。捕获特定的异常类型,并抛出您自己的异常(您可能想要创建自己的异常类型),包括您的自定义消息。在您想要继续该过程的代码位置,只需捕获该异常即可。
这可能会有所帮助:http: //msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic18
“...数据库检测到的任何错误都将导致提交过程中止并引发异常。对数据库的所有更改都将回滚,就好像从未发生过任何提交一样。DataContext 仍将具有完整的记录所有更改,以便可以尝试纠正问题并通过再次调用 SubmitChanges() 重新提交它们..."