我们需要在服务层的什么地方包含非业务逻辑验证

Where do we need to include non business logic validations in Service Layer

目前 um 在一个应用程序中工作,它具有以下层次结构

WEB API2 控制器(隐藏端点)

业务逻辑层(专用于业务逻辑处理)

数据访问层(存储库)

如果我们想强加一个与业务逻辑无关的验证,例如实体中特定字段的字符数验证,那么理想的实现位置是什么?

有人说它应该自己在控制器上,但我不同意。

使用分层架构时不能教条。您可以测量任何功能的一些抽象。这个措施可以很灵活。

在您的具体示例中,您正在查看验证实体的字符串大小。现在,名称实体将它放在数据层附近,这就是我要放置它的地方。因此,如果有人试图放置长度错误的实体,您的数据层可能会引发访问冲突。