【问题标题】:Persistent Layer Validations持久层验证
【发布时间】:2009-05-11 19:12:01
【问题描述】:

在使用存储过程保存数据时,我们经常会遇到外键约束、唯一键约束等。所有这些错误都可以通过传入正确的数据来纠正。

验证可以在业务逻辑层完成,只有在验证成功后才发送到持久层。但在某些情况下,在保存时验证数据很方便。就像在存储过程中一样。

例如,如果用户输入一些日期范围值,则应验证该范围不与任何现有范围重叠。在这种情况下,最好返回一些错误代码,它可以告诉我们范围是否重叠并且无法保存。

在 SQL Server 中,我们可以简单地引发自定义异常,但我想在不使用异常的情况下这样做。是否有任何可用的验证框架可供我使用。

我正在寻找 SQL Server 2005 和 .net 特定的解决方案。


P.S.:我通常从存储过程中返回自定义错误代码,然后通过在 xml 文件中查找来解析它们,然后在我的业务层规则引擎中使用它。

【问题讨论】:

    标签: c# .net sql-server database validation


    【解决方案1】:

    在 SQL Server 中嵌入业务逻辑可能会提高性能,但会因违反关注点分离而使设计复杂化。为了让我有可移植的业务逻辑,它应该在业务层。我会从存储的过程中删除验证逻辑,只使用它们来简化 CRUD 操作。您永远不知道项目利益相关者何时会说“让它在数据库 X 上运行!”。尽量保持验证逻辑数据库的独立性。

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 2017-02-05
      • 1970-01-01
      相关资源
      最近更新 更多