如何在 Asp.Net Boilerplate 中实现域约束

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

我有一个实体 (EntityA) 和 (FieldA, FieldB, FieldC),以及一个域约束,其中 FieldA、FieldB、FieldC 的组合应该是唯一的。

目前我正在使用默认存储库和 AsyncCrudAppService 来提供实体的基本 Crud 实现。但是,一旦我在数据层引入了唯一约束,我就会从 UI 层获得 500。

处理此异常并转换为用户友好错误的最佳方法是什么?

到目前为止我考虑的选项:

  1. 重写 AppService 中的 CreateAsync 并生成用户友好的异常。 这似乎是最快的方法,但我觉得这应该在实际 DDD 模块的核心层中处理。
  2. 生成一个域服务。 这阻止了我使用 AsyncCrudAppService,我需要在 DomainService 和 AppService 手动引入 CRUD 操作的代码。
  3. 编写自定义存储库 类似于DomainService,CRUD操作的代码很多
  4. 为UnitOfWork引入一个拦截器 似乎是最好的方法,但是找不到方法。
aspnetboilerplate
© www.soinside.com 2019 - 2024. All rights reserved.