gpt4 book ai didi

c# - 存储库层是否应该返回数据传输对象 (DTO)?

转载 作者:IT王子 更新时间:2023-10-29 04:27:54 24 4
gpt4 key购买 nike

我有一个存储库层负责我的数据访问,它由服务层调用。服务层返回序列化并通过网络发送的 DTO。通常情况下,服务只是访问存储库并返回存储库返回的任何内容。

但要使其正常工作,存储库必须返回该 DTO 的一个实例。否则,您首先必须将存储库返回的数据层对象映射到服务层中的 DTO 并返回它。这看起来很浪费。

最重要的是,如果 DTO 的创建发生在服务层,那么之前可能在一个存储库调用中完成的事情,因此一个数据库查询,现在必须通过服务层中的多个存储库调用来完成 '编写最终的 DTO。当然,除非我在数据层和服务层之间创建一个可以包含这样一个组合对象的传输对象。 然后 必须映射到 DTO。为了纯洁,这似乎很浪费。但是让存储库层返回刚刚存在的对象以通过网络发送也感觉不对。

最佳答案

简短回答:否。

长答案:存储库负责将持久化数据转回实体(模型),反之亦然。

模型是代表业务实体的业务模型。另一方面,DTO——虽然看起来像模型——关注对象在各种环境之间的传输,本质上是一个 transient 对象。通常映射器负责将模型转换为 DTO。

关于c# - 存储库层是否应该返回数据传输对象 (DTO)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5068984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com