Csharp/C#教程:存储库层是否应该返回数据传输对象(DTO)?分享


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

我有一个存储库层负责我的数据访问,由服务层调用。 服务层返回序列化并通过线路发送的DTO。 通常,服务只是访问存储库并返回存储库返回的内容。

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

最重要的是,如果DTO的创建发生在服务层中,那么在一个存储库调用之前可能已经完成的事情以及因此一个数据库查询现在必须在服务层中的多个存储库调用中发生以“组合”最后的DTO。 当然,除非我在数据和服务层之间创建一个可以包含这样一个组合对象的传输对象。 然后必须将其映射到DTO。 为了纯洁,这似乎是浪费。 但是,让存储库层返回仅通过线路发送的对象也是错误的。

简答:没有。

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

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

上述就是C#学习教程:存储库层是否应该返回数据传输对象(DTO)?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/984802.html

(0)
上一篇 2021年12月20日
下一篇 2021年12月20日

精彩推荐