FluentValidation - 如何让一个实体 属性 值驱动另一个实体验证
FluentValidation - how to have one entity property value drive another entities validation
我有一个包含多个属性和多个集合的对象,一个简化的示例:
"Form": {
"Funders": [
{
"FunderID": "string",
"Name": "string",
"Type": "string"
}
],
"Publications": [
{
"PublicationID": "string",
"Name": "string",
"Type": "string",
}
],
"Created": "2017-02-10T22:26:49.528Z",
"CreatedBy": "string",
"LastModified": "2017-02-10T22:26:49.528Z",
"LastModifiedBy": "string",
}
如果 Funders
中的任何资助者使用流利的 A,我如何验证 Publications
至少有 1 Publication
of Type
Z验证。
换句话说,如果任何 Funder Type 是 A 类型,那么 Publications 中的一个 Publication 必须是 Z 类型
目前我有 Publication、Funder 和 form 的验证器,只是在努力弄清楚如何创建此验证。
我正在使用 fluentvalidation,c#,entity framework。
答案是对整个模型进行验证。其实很简单。
RuleFor(x => x.Publications
.Where(p => p.Type == "Type Z").Count()).GreaterThan(0)
.When(x => x.Funders.Where(f => f.Type == "Type A").Count() > 0)
.WithMessage("An Form containing a funder of type 'Type A' must have at least one Publication with of type 'Type Z'.")
.OverridePropertyName("Publications");
我有一个包含多个属性和多个集合的对象,一个简化的示例:
"Form": {
"Funders": [
{
"FunderID": "string",
"Name": "string",
"Type": "string"
}
],
"Publications": [
{
"PublicationID": "string",
"Name": "string",
"Type": "string",
}
],
"Created": "2017-02-10T22:26:49.528Z",
"CreatedBy": "string",
"LastModified": "2017-02-10T22:26:49.528Z",
"LastModifiedBy": "string",
}
如果 Funders
中的任何资助者使用流利的 A,我如何验证 Publications
至少有 1 Publication
of Type
Z验证。
换句话说,如果任何 Funder Type 是 A 类型,那么 Publications 中的一个 Publication 必须是 Z 类型
目前我有 Publication、Funder 和 form 的验证器,只是在努力弄清楚如何创建此验证。
我正在使用 fluentvalidation,c#,entity framework。
答案是对整个模型进行验证。其实很简单。
RuleFor(x => x.Publications
.Where(p => p.Type == "Type Z").Count()).GreaterThan(0)
.When(x => x.Funders.Where(f => f.Type == "Type A").Count() > 0)
.WithMessage("An Form containing a funder of type 'Type A' must have at least one Publication with of type 'Type Z'.")
.OverridePropertyName("Publications");