我想达到的,大致可以概括为一个简单的或者有条件的。
虽然使用Fluent验证支持其他属性上的条件属性验证(When/Unless ),但似乎没有一种方法支持同一属性上的条件规则。还是我错过了什么?
本质上我想实现:
RuleFor(x => x.Property).CanEitherValidateThisRule().Or.CanValidateThisRule();
唯一的替代方法是将规则组合在一个自定义规则中?
然而,这紧密地耦合了规则逻辑,实际上它们是完全独立的条件,我可能想在其他对象/字段上使用。
有人建议在 FluentValidation.NET 的未来版本中支持这一点,有没有人知道使用扩展方法实现这一目标的方法,或者是否有我错过的语法?
编辑:找到讨论:.NET流利验证-查看讨论
您可以尝试为同一属性链接验证器 尽管这是一种肮脏的方式来做你想要的事情,但如果你正在对一小部分代码进行验证,它仍然值得。
如果你想要一种更简洁的方式,那么,到目前为止,我认为创建自定义验证器类是最方便的选择。
我链接到的维基页面提供了所有必要的工具。
我想在Esper中编写一条规则,当过去15分钟内的步数为0且心率高于120时触发。我想出了以下规则: 我的心率类别有以下字段: 我的Steps类有以下字段: 我面临的问题是,我只想在过去15分钟内没有采取任何措施的情况下启动规则。现在,当两个步骤事件的步骤数相同时,它将激发。我知道我可能必须使用计时器。但是我不知道如何写这个规则。谁能帮帮我吗?
目前我正在开发一个源代码到源代码的编译器,我已经编写了一个bison解析器,可以正确地为输入创建AST。我现在需要对语法树进行几个转换,因此我需要在树中插入许多节点。 我可以手动创建我想添加到语法树中的所有结构/联合,但这似乎是非常繁重的工作。 对我来说,创建一个字符串会容易得多,我希望这个字符串能被我已有的解析器解析。然后,解析器应该返回这个字符串的树,我可以将其插入到我的原始语法树中。 不幸的
我知道Drools中的“显着性”提供了对规则执行顺序的控制。但上面是一个例子,说明了当“显着性”不再能帮助我时所面临的问题。 在这里,我有三条规则正在相继执行: 我期望第三条规则被触发,并且控制台中有“规则被触发”行,但它没有被执行。 据我所知,问题在于规则评估阶段,当所有三个规则在执行前同时评估,然后才根据它们的“显着性”回合执行。 在评估的那一刻,$resource1.amount是5,这就是
在我的项目中,我有一些要求,我想使用Drools来适应。有些规则不会经常改变,它们是基础。然后应该有第二个DSLR,它会更频繁地更改,并且应该在其中扩展、覆盖和/或聚合已经定义的规则。 是否可以使用口水来满足此类要求。我更新了Drools文档,但我不确定这是否可行。
问题内容: 我在Postgres 11.3数据库中有一个带有列的表。 尝试更新嵌套数组名称中的所有对象。 如果路径是对象,则应将路径从对象更新为具有以下值的字符串: 如果不存在该路径,则该对象应保持不变。 使用查询测试设置:小提琴链接 所需结果: 我已经修改了查询并链接到小提琴中。有人可以看看是否正确吗? 问题答案: 平原应该有所作为。 db <>在这里 拨弄 (Postgres 11!) 为了同
我正在尝试编写一个规则,以检测给定事件在最后一个“m”持续时间内是否发生了“n”次。我正在使用drools 5.4版。最终的我也试过5.5。最终无效果。 我发现有几个条件元素,如Drools所说,累积和收集。我在下面的示例规则中使用了收集 终止 注入日志的代码如下所示。该代码每3秒注入一次日志并触发规则。 有了这个,我能做的就是在最后10秒内检查上述日志消息是否存在。我还可以找到触发规则的前10秒