当我们可以捕获异常时: Violation of UNIQUE KEY constraint 'IX_Product'. Cannot insert duplicate key in object 'Product'. (2627)
.
挑战在于如何将索引名称 IX_Product 分解为成员(即我不想将消息子串化)。一个表上可能有多个唯一约束,我们需要知道哪一个可以向用户提供更详细的信息。最好将它作为 DbException 捕获,因此它不是特定于 SQL Server 的。有没有办法从异常中获取受影响的索引而不必解析字符串?
我想出但我没有测试过的唯一解决方案是使用存储过程并在其中捕获错误并从存储过程返回更详细的消息。但我相信这仍然会有问题。