【问题标题】:Is there any way in Entity Framework 4 of making Validation produce a warning instead of an error?Entity Framework 4 中是否有任何方法可以使验证产生警告而不是错误?
【发布时间】:2013-06-23 07:58:14
【问题描述】:

据我所知,Entity Framework 中的验证完全建立在这样一个假设之上:如果一个项目没有通过验证,它就不能被持久化到数据库中。是否有任何机制(可能与正常验证并行运行)使对字段的约束向用户产生警告,而不是阻止记录被保存/更新的错误?

更具体地说,我有一种情况,即特定的数值字段对其有限制,但这些都是建议性的,而不是硬性规定的。如果用户输入了超出这些限制的值,他们应该会收到警告,但应该仍然能够保存记录。

理论上,我可以继承 ValidationResult 类来创建一个 ValidationWarning 类,然后创建一个自定义的 ValidationResults 子类,其 IsValid 属性对 ValidationWarning 消息的存在敏感,并在决定实体是否有效时忽略它们.然而,这个需求已经出现在一个已经在开发中的项目中,并且需要大量的重构才能使这种自定义子类正常工作。我更愿意找到一种可以利用而不会造成太多干扰/返工的机制。

【问题讨论】:

    标签: validation entity-framework-4 warnings


    【解决方案1】:

    我对一个项目有类似的要求,我是如何解决的。如果 (ModelState.IsValid) 为假,我从 ModelState 中清除了错误并再次发送它,然后将“错误”记录到另一个服务。这有点小技巧,我不建议这样做,因为它不是最佳实践。

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 2020-12-11
      • 1970-01-01
      相关资源
      最近更新 更多