【发布时间】:2018-10-12 21:59:54
【问题描述】:
我有一个多层项目。层数如下:
- 商务
- 数据访问
- 实体
- 核心
- MvcWebUI
我在实体层有一个 Category 类:
public class Category : IEntity
{
public int Id { get; set; }
public string Name { get; set; }
}
我在业务层也有一个 CategoryValidator 类:
public class CategoryValidator : AbstractValidator<Category>
{
public CategoryValidator(IEnumerable<Category> categories)
{
RuleFor(x => x.Name).NotEmpty().MaximumLength(50);
}
}
我在核心层有一个类用于验证。
public class ValidatorTool
{
public static void FluentValidate(IValidator validator, object entity)
{
var result = validator.Validate(entity);
if (result.Errors.Any())
throw new ValidationException(result.Errors);
}
}
我正在使用 FluentValidate 方法在业务层中执行验证。
但是当涉及到 MvcWebUI 层时,我被卡住了。根据FluentValidation documentation,我需要给实体类应用一个属性如下:
[Validator(typeof(PersonValidator))]
但是由于业务层引用了实体层,所以无法到达实体层中的CategoryValidator类。 (圈出参考)
我该如何解决这个问题? 我是否错误地创建了图层? 或者我应该在 Web 层中再次将实体定义为模型? 请帮帮我。
【问题讨论】:
标签: asp.net-mvc fluentvalidation