|
|
|
@ -86,7 +86,7 @@ public class LabelDto : EntityDto<Guid> |
|
|
|
|
|
|
|
* **推荐** 为异步方法使用 **Async** 后缀. |
|
|
|
* **不推荐** 在方法名中重复实体的名称. |
|
|
|
* 例如: 在 `IProductAppService` 中定义`GetProductAsync(...)` 而不是 `GetAsync(...)` . |
|
|
|
* 例如: 在 `IProductAppService` 中定义`GetAsync(...)` 而不是 `GetProductAsync(...)` . |
|
|
|
|
|
|
|
##### 获取单一实体 |
|
|
|
|
|
|
|
@ -104,7 +104,7 @@ Task<QuestionWithDetailsDto> GetAsync(Guid id); |
|
|
|
* **推荐** 如果需要获取单个DTO可以使用参数进行 **过滤**, **排序** 和 **分页**. |
|
|
|
* **推荐** 尽可能让过滤参数可选. |
|
|
|
* **推荐** 将排序与分页属性设置为可选, 并且提供默认值. |
|
|
|
* **推荐** 限制最大页数大小 (基本性能考虑). |
|
|
|
* **推荐** 限制最大页数大小 (基于性能考虑). |
|
|
|
* **推荐** 返回 **详细DTO**集合. 示例: |
|
|
|
|
|
|
|
````C# |
|
|
|
@ -116,7 +116,7 @@ Task<List<QuestionWithDetailsDto>> GetListAsync(QuestionListQueryDto queryDto); |
|
|
|
* **推荐** 使用 `CreateAsync` 做为**方法名**. |
|
|
|
* **推荐** 使用**专门的输入DTO**来创建实体. |
|
|
|
* **推荐** 使用 **data annotations** 进行输入验证. |
|
|
|
* 尽可能在**领域**之间共享常量(通过域**domain shared** package定义的常量). |
|
|
|
* 尽可能在**领域**之间共享常量(通过**domain shared** package定义的常量). |
|
|
|
* **推荐** 只需要创建实体的**最少**信息, 但是提供了其他可选属性. |
|
|
|
|
|
|
|
示例**方法**: |
|
|
|
@ -147,7 +147,7 @@ public class CreateQuestionDto |
|
|
|
- **推荐** 使用**专门的输入DTO**来更新实体. |
|
|
|
- **推荐** 获取实体的id做为分离的原始参数. 不要包含更新DTO. |
|
|
|
- **推荐** 使用 **data annotations** 进行输入验证. |
|
|
|
- 尽可能在**领域**之间共享常量(通过域**domain shared** package定义的常量). |
|
|
|
- 尽可能在**领域**之间共享常量(通过**domain shared** package定义的常量). |
|
|
|
- **推荐** 返回更新实体的**详细**DTO. |
|
|
|
|
|
|
|
示例: |
|
|
|
|