gpt4 book ai didi

c# - 使用数据注释对属性子集进行强制验证

转载 作者:行者123 更新时间:2023-11-30 12:58:22 25 4
gpt4 key购买 nike

我有一个包含三个字段的 DTO 模型。

[Range(1, 100000)]
public Decimal? BonusRate { get; set; }
[Range(1, 100000)]
public Decimal? BonusGain { get; set; }
[Range(1, 100)]
public Decimal? BonusPercentage { get; set; }

在我的例子中,所有字段都是可选的,但如果设置了一个,则所有其他字段也应设置。我已经制定了一个决定,它运作良好,但看起来有点笨拙。

IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
if (BonusRate.HasValue || BonusGain.HasValue || BonusPercentage.HasValue)
if (!BonusRate.HasValue || !BonusGain.HasValue || !BonusPercentage.HasValue)
yield return new ValidationResult("message");

}

有人知道更好的方法吗?

最佳答案

if (BonusRate.HasValue == BonusGain.HasValue && BonusGain.HasValue == BonusPercentage.HasValue)

或收集列表中的值并:

var isChecked = list.All(x => (x == list.First()));

关于c# - 使用数据注释对属性子集进行强制验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30102436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com