我有一个存储库层负责我的数据访问,由服务层调用.服务层返回序列化并通过线路发送的DTO.通常,服务只是访问存储库并返回存储库返回的内容.
但要使其工作,存储库必须返回该DTO的实例.否则,您首先必须将存储库返回的数据层对象映射到服务层中的DTO并返回该对象.这看起来很浪费.
最重要的是,如果DTO的创建发生在服务层中,那么在一个存储库调用之前可能已经完成的事情以及因此一个数据库查询现在必须在服务层中的多个存储库调用发生以"组合"最终的DTO.当然,除非我在数据和服务层之间创建一个可以包含这样一个组合对象的传输对象.这则必须映射到DTO.为了纯洁,这似乎是浪费.但是,让存储库层返回仅通过线路发送的对象也是错误的.
提前致谢.
我在域层库中有一些聚合.此外,一些DTO位于单独的库中,在服务器端和客户端之间共享.
实体的聚合比其DTO更具信息量.因此,为了从DTO转换为Aggregate,Dto汇编程序应该访问存储库.存储库的接口位于域层中.这就是为什么我来的结论,即DtoAssembler应该成为其中的一部分DomainLayer.
这是正确的吗?
implementation domain-driven-design project-organization layer dto