FluentValidation 是否包含数据库连接

问题描述 投票:0回答:1

当用户想要使用经典 dto 模型(昵称、电子邮件、密码)创建新帐户时,我在控制器中进行了验证。

我使用 Fluent Validation 来检查密码是否不为空且超过 5 个字符。

我需要检查昵称和电子邮件是否已存在于数据库中。 是否应该在 FluentValidation 内部完成,将 UserService 和 EmailService 注入 Validator 构造函数? 除了 FluentValidatoin 之外,仅在控制器中使用 UserService 和 EmailService 来验证用户存在和电子邮件存在是否更好? 我考虑了这两种方法的优缺点。

c# fluentvalidation
1个回答
0
投票

您对这两种选择都持开放态度并希望评估利弊,这是件好事。也许考虑一下您的应用程序是如何构建的。如果其他一切都是使用 FluentValidation 完成的,那么以这种方式抽象验证可能是值得的。如果您仅在某些地方使用 FluentValidation,则可能不值得,因为已经没有一致性。

我可能会在 FluentValidation 构造函数中注入服务。为了保持信息的私密性,我将向这些服务添加公共 userExists() 和 emailExists() 方法。

© www.soinside.com 2019 - 2024. All rights reserved.