Fluent API 与 FluentValidation

在模型中,有一个 Fluent API 比数据注释更适合用于验证。然后我们还有 FluentValidation。如果我们有 Fluent API,我们还需要 FluentValidation 吗?或者 Fluent API 仅适用于模型,而 FluentValidation 适用于其他一切?



千万里不及你
浏览 96回答 1
1回答

牧羊人nacy

FluentValidation 是用于验证规则的框架。虽然简单的验证规则可以是例如:文本长度为 100 个字符或者它是必填字段,但在大多数业务情况下,规则要复杂得多,并且可以以易于读/写的方式定义它们。Fluent API 是实体框架扩展,它支持易于读/写的实体框架,用于将数据库等数据源映射到 C# 数据传输对象类。DTO 中没有业务逻辑,它们被转换为有业务逻辑的模型。部分问题是您将验证放在哪里?假设您的应用程序分为客户端、服务器端、微服务、数据库。应该是其中之一、全部还是介于两者之间,简短的回答是——是的。您应该有数据库规则,以防止存储无效状态。同时数据库调用成本高昂且耗时。将所有业务规则添加到数据库及其约束、设置触发器等称为数据库优先架构。虽然这是可能的,但通常可以设置一个 80-98% 的时间命中的缓存。客户端验证的普遍问题是它可以被绕过,以及其他多种原因。简而言之 - 每个验证解决方案或如何抽象应用程序都存在限制。开发人员通常尝试以最小的努力编写干净的代码,并且通常要求他们添加测试,并且通常他们不编写架构或数据库集成测试,因此他们向模型添加业务逻辑并为其编写测试。此外,Fluent 验证用于模型验证,Fluent api 用于数据源访问。
打开App,查看更多内容
随时随地看视频慕课网APP