我正在使用SpecExpress进行命令验证。(命令验证在转到控制器之前验证命令。)
对于一个简单的案例,我只是验证了长度,是否需要,正则表达式等,但现在的情况如下:
检查命令属性,例如。 “UserName”是否在我的数据库中, 对于这种情况,使用存储库并检查数据库中的数据与否, 如果存在则失败或成功。
this.Check(ur => ur.UserName).Required().Expect(
(x, y) =>
{
var isExists = userService.isExists(x.UserName);
return !isExists;
},
"User already exist");
我的问题是,在命令验证中进行数据验证是最佳做法吗? 或者我只是以传统方式执行此操作,例如在控制器或服务中,我们检查用户是否在数据库中,然后转到下一步或抛出异常。
答案 0 :(得分:1)
我们(我的团队)在命令验证时进行正常的验证检查,所有类型的数据验证都转到控制器或服务。