我的验证器会检查属性Name
是否唯一,因为集合ContentSections
中没有其他项具有相同的值。
public class ContentSectionDtoValidator : AbstractValidator<ContentSectionDto>
{
public ContentSectionDtoValidator(EditContentSectionsDto editContentSectionsDto)
{
RuleFor(x => x.Name)
.Must(x => editContentSectionsDto.ContentSections.Count(contentSection => contentSection.Name == x) == 1)
.WithMessage("The Name '{0}' has already been used. Names must ne unique.", x => x.Name);
}
}
为了实现这一点,我将包含整个集合的父模型作为参数传递给构造函数,因此我可以将当前项目的Name
与其他所有项目进行比较。集合。
这很有效,但显然如果发现Name
被任何其他项目使用,则会打印每个匹配的验证错误。
即使条件多次匹配,有没有办法只打印一条消息?