.net – 如何捕获数据库错误并将其转换为业务层的有意义的信息?

前端之家收集整理的这篇文章主要介绍了.net – 如何捕获数据库错误并将其转换为业务层的有意义的信息?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
通常我必须在数据库中插入一些数据,不能插入,因为该表有约束阻止我这样做.随着我正在开发的应用程序,一些业务规则(例如“没有两个具有相同ID类型和号码的人”或“XXXX产品已经注册”)被强制使用UNIQUE或复合密钥和其他机制.虽然我知道DBMS抛出一个错误消息(如ORA-6346或)我不知道如何捕获.net 4.0中的这些错误,并将它们转换为对业务层有意义的错误.

作为一个例子:我看到一个插入机制,询问DB是否已经存在,然后继续插入数据(如果不是这样).我只想使用查询和捕获数据库约束违例错误,因为我觉得第一种方式效率很低(DB可以提醒你有关于重复的错误).

如何实现这样的东西?

注意:我认为可以从数据库中捕获异常,并使用其ORA-xxxx代码来测试发生了什么.如果错误消息显示哪个约束(…的名称)已经被破坏,我不记得精度,但业务层代码可以包含具有约束名称的常量,并从中知道发生了什么.

解决方法

你应该在这里做什么,这取决于你的系统架构,以及你对放置业务逻辑的态度.

许多系统架构师更倾向于将数据库用作愚蠢的数据存储,并实现您在中间/应用层中谈论的错误处理和完整性检查的类型.这是一个非常有效的方法,特别适用于需要定期更小版本的系统,其中业务逻辑需要定期更改(更容易重新分配可执行周期而不是协调数据库版本),以及数据的位置模型相当简单.

另一种方法是将一些明确定义的半永久业务逻辑放入数据库层.当数据模型更复杂时,这是特别强大的,你有一个很好的DBA!

猜你在找的MsSQL相关文章