我有一个实体 (EntityA) 和 (FieldA, FieldB, FieldC),以及一个域约束,其中 FieldA、FieldB、FieldC 的组合应该是唯一的。
目前我正在使用默认存储库和 AsyncCrudAppService 来提供实体的基本 Crud 实现。但是,一旦我在数据层引入了唯一约束,我就会从 UI 层获得 500。
处理此异常并转换为用户友好错误的最佳方法是什么?
到目前为止我考虑的选项:
- 重写 AppService 中的 CreateAsync 并生成用户友好的异常。
这似乎是最快的方法,但我觉得这应该在实际 DDD 模块的核心层中处理。
- 生成一个域服务。
这阻止了我使用 AsyncCrudAppService,我需要在 DomainService 和 AppService 手动引入 CRUD 操作的代码。
- 编写自定义存储库
类似于DomainService,CRUD操作的代码很多
- 为UnitOfWork引入一个拦截器
似乎是最好的方法,但是找不到方法。