据我所知,Entity Framework 中的验证完全建立在这样一个假设之上:如果一个项目未能通过验证,它就不能被持久化到数据库中。是否有任何机制(可能与正常验证并行运行)对字段进行约束向用户发出警告,而不是阻止记录被保存/更新的错误?
更具体地说,我有一个特定的数值字段对其有限制的情况,但这些都是建议性的,而不是硬性的。如果用户输入了超出这些限制的值,他们应该会收到警告,但仍然应该能够保存记录。
理论上,我可以继承 ValidationResult 类来创建一个 ValidationWarning 类,然后创建一个自定义的 ValidationResults 子类,其 IsValid 属性对 ValidationWarning 消息的存在敏感,并在确定实体是否有效时忽略它们。然而,这个需求已经出现在一个已经在开发中的项目中,并且需要大量的重构才能使这种自定义子类正常工作。我更愿意找到一种可以在不造成太多干扰/返工的情况下加以利用的机制。