【发布时间】:2021-02-04 16:20:19
【问题描述】:
所以,我想构建一个使用 FluentValidation 的具有简洁架构的简单项目。在 My Domain 层(有自己的库)中,我有 Teacher 类和 TeacherAnnotation 类,如下所示:
public class Teacher
{
public int Id { get; set; }
public string Name { get; set; }
public string Lastname { get; set; }
}
和
public class TeacherAnnotation : AbstractValidator<Teacher>
{
public TeacherAnnotation()
{
RuleFor(x => x.Name).NotEmpty().MinimumLength(3).MaximumLength(50);
RuleFor(x => x.Lastname).NotEmpty().MinimumLength(3).MaximumLength(50);
}
}
在表示层(这是一个不同的库)中,在我的 Main Api 中,在启动时我添加了以下内容:
services.AddControllers().AddFluentValidation();
services.AddTransient<IValidator<Teacher>, TeacherAnnotation>();
在我的数据层(这是一个不同的库)中,我运行我的迁移(我将我的数据库逻辑和迁移保留在那里)。 问题是,当我添加迁移“初始”和更新数据库时,一切都运行良好,但是 FluentAnnotation 不起作用,我可以在没有姓名或姓氏的表中添加教师,并且它不限制它,来自 Api我还可以添加具有 2 个字符名称或没有名称的教师,并将它们添加到数据库中。 所以一句话,我做错了什么? P.S 在域层库中我添加了 FluentValidation 的 NugetPackage,在 Presentation Layer Api 中我添加了 FluentValidation 和 FluentValidation.aspnetcore 的 NugetPackage
【问题讨论】:
标签: c# asp.net-core asp.net-web-api fluentvalidation clean-architecture