我正在构建HTTP REST API并为API实现CQRS模式。
我有以下项目(见下文)。
Project.Core
- Project.Core.Commands - 包含ICommand,ICommandHandler和ICommandDispatcher。
- Project.Core.Queries - 包含IQuery,IQueryHandler和IQueryDispatcher。
- Project.Core.Commands.Impl - 包含命令处理程序的ICommandDispatcher实现和装饰器。
- Project.Core.Queries.Impl - 包含查询处理程序的IQueryDispatcher实现和装饰器。
Project.Cars
- Project.Cars.Queries - 包含查询及其验证程序。
- Project.Cars.QueryHandlers - 包含查询处理程序
我在Project.Cars.Queries中存储查询结果类。每个查询都有自己的结果类。
在API中,我希望提供过滤结果字段的功能。我该怎么办?
现在我有两个选择:
- 创建Project.Cars.ReadModel项目。像“GetCarsList”和“GetCarById”这样的查询将返回具有相同类型(Car)的模型。在ASP.NET Core应用程序中,我将仅序列化用户要求的字段。
- 查询将具有“字段”属性并直接从DB读取该字段。但在这种情况下,我不知道如何处理读取模型。
醇>