【发布时间】:2020-02-23 17:00:27
【问题描述】:
.Net Core 3,简洁架构。
我已经阅读了很多关于使用 CQRS 进行数据验证的文章。例如there 和there。
我做了一些结论:
- 需要验证 DTO 中的数据。这是实体的合同。
- 作者的一些建议将日期验证到实体(域)中。
- 在 CQRS AbstractValidator 中,我们也可以验证,但其他规则。
电子邮件字段验证将在 1 和 2 中进行。 年龄限制将在3.
但是服务器中的三个验证 + 客户端中的一个验证是有问题的(大 DRY)。 DTO 或实体中哪里有更好的验证?我认为在 DTO 中,因为当我从输入中获取 DTO 时,我可以验证并调用 ModelState.IsValid。但我也阅读了一些需要验证实体中的输入数据的文章。
所以,我很困惑。你能解释一下吗:
如果需要验证电子邮件字段和年龄限制 (18),需要在 CQRS 的 Clean Architecture 中进行验证吗?
【问题讨论】:
标签: asp.net-core domain-driven-design cqrs clean-architecture