为了账号安全,请及时绑定邮箱和手机立即绑定

Fluent API 与 FluentValidation

Fluent API 与 FluentValidation

C#
千万里不及你 2023-07-09 15:09:44
在模型中,有一个 Fluent API 比数据注释更适合用于验证。然后我们还有 FluentValidation。如果我们有 Fluent API,我们还需要 FluentValidation 吗?或者 Fluent API 仅适用于模型,而 FluentValidation 适用于其他一切?
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

FluentValidation 是用于验证规则的框架。虽然简单的验证规则可以是例如:文本长度为 100 个字符或者它是必填字段,但在大多数业务情况下,规则要复杂得多,并且可以以易于读/写的方式定义它们。

Fluent API 是实体框架扩展,它支持易于读/写的实体框架,用于将数据库等数据源映射到 C# 数据传输对象类。DTO 中没有业务逻辑,它们被转换为有业务逻辑的模型。

部分问题是您将验证放在哪里?假设您的应用程序分为客户端、服务器端、微服务、数据库。应该是其中之一、全部还是介于两者之间,简短的回答是——是的。

您应该有数据库规则,以防止存储无效状态。同时数据库调用成本高昂且耗时。将所有业务规则添加到数据库及其约束、设置触发器等称为数据库优先架构。虽然这是可能的,但通常可以设置一个 80-98% 的时间命中的缓存。客户端验证的普遍问题是它可以被绕过,以及其他多种原因。

简而言之 - 每个验证解决方案或如何抽象应用程序都存在限制。开发人员通常尝试以最小的努力编写干净的代码,并且通常要求他们添加测试,并且通常他们不编写架构或数据库集成测试,因此他们向模型添加业务逻辑并为其编写测试。

此外,Fluent 验证用于模型验证,Fluent api 用于数据源访问。


查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信