通常我必须在数据库中插入一些数据,不能插入,因为该表有约束阻止我这样做.随着我正在开发的应用程序,一些业务规则(例如“没有两个具有相同ID类型和号码的人”或“XXXX产品已经注册”)被强制使用UNIQUE或复合密钥和其他机制.虽然我知道DBMS抛出一个错误消息(如ORA-6346或)我不知道如何捕获.net 4.0中的这些错误,并将它们转换为对业务层有意义的错误.
作为一个例子:我看到一个插入机制,询问DB是否已经存在,然后继续插入数据(如果不是这样).我只想使用查询和捕获数据库约束违例错误,因为我觉得第一种方式效率很低(DB可以提醒你有关于重复的错误).
如何实现这样的东西?
注意:我认为可以从数据库中捕获异常,并使用其ORA-xxxx代码来测试发生了什么.如果错误消息显示哪个约束(…的名称)已经被破坏,我不记得精度,但业务层代码可以包含具有约束名称的常量,并从中知道发生了什么.