我有一个类竞争者
internal class Competator
{
public int Id { get; set; }
public string Name { get; set; }
[MustBe12AndAbove]
public int age { get; set; }
}
字符串
对于年龄字段,我已经编写了一个自定义验证,如下面的代码,并在competator注册过程中使用它
internal class MustBe12AndAbove:ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var Competator = (Competator)validationContext.ObjectInstance;
return (Competator.age < 12) ? new ValidationResult("The competator must be above 12 to register")
: ValidationResult.Success;
}
}
型
但是由于我没有在任何实体中使用DataAnnotation,所以我需要将其用作Fluent API方法,如下所示。
modelBuilder.Entity<Competator>()
.Property(c => c.age)
.MustBe12AndAbove();
型
这可能吗?
1条答案
按热度按时间e0bqpujr1#
一般来说-不,这不可能。主要的问题是
ValidationAttribute
是服务器端验证,而你所说的Fluent API是数据库配置--将被转换成数据库模式和约束。https://docs.fluentvalidation.net/en/latest/工具可能会让你的生活更轻松。
有关更详细的答案,请参见https://stackoverflow.com/a/54353112/2091519