白话Entity Framework Core数据验证( 五 )
通过上述代码就可以一处编写验证 , 多处使用了 。 具体的思路和前面所讲的一样 , 这里就不再进行讲解了 。
二、第三方扩展模型验证
前面所讲的是通过数据注解的方式来进行数据验证的 , 但是如果是使用 Fluent API 的方式就没办法解决文章开头所说的问题 , 因为Fluent API 模式并没有提供对数据模型的验证 。 这时我们可以使用第三方扩展 , 在 EF Core 中常用的模型数据验证第三方扩展是 FluentValidation.AspNetCore 。 在使用前我们需要在 NuGet 中下载此扩展 。 FluentValidation.AspNetCore 安装完成后我们需要为模型创建验证器 , 验证器是一个继承自 AbstractValidator<T> 的类 , 验证规则使用 RuleFor 方法定义在验证器构造函数中 。 代码如下:
public class ModelValidator:AbstractValidator<User> { public ModelValidator() { RuleFor(p => p.Name).NotEmpty().WithMessage(\"姓名不能为空\"); RuleFor(p => p.Name).MaximumLength(5).WithMessage(\"姓名长度在5字节\");
上述代码进行了两个验证 , 一个是验证 Name 字段是否为空 , 另一个是验证 Name 字段的长度 , 其中我们通过 MaximumLength 规定了 Name 字段的最长长度为 5 字节 。 之后我们通过 WithMessage 方法返回我们自定义的错误信息 。 我们定义完验证规则后下一步就是将我们定义的验证规则与应用程序连接起来 , 这里我们需要用到 AddFluentValidation 来注入 , 例如在 Asp.Net Core 程序中我们将注入程序写入 Startup 的 ConfigureServices 方法里 。 我们调用 AddFluentValidation 方法会将 FluentValidation 服务添加到 Asp.Net Core 中 , 然后使用 RegisterValidatorsFromAssembly 方法将自定义的验证代码注入到容器中 , 代码段如下:
推荐阅读
- 我的世界|我的世界:Entity303 真实档案实录!8年前,一段灵异的目击事件
- 身份管理业者Ping Identity交招股书:拟募资1亿美元
- 5句大白话看懂央行新房贷利率机制调整
- 海信S7全面解读:用大白话告诉你这到底是个什么产品
- 系统小技巧:深入全面掌握.NET Framework
- 《天官赐福》漫画,花城谢怜寻国师,谢怜为何变成“白话真仙”?
- 智能锁真相大白话:“小黑盒”竟然不是特斯拉线圈?
- 谷大白话与a土人, 正如职场中的你我