当前位置:  开发笔记 > 编程语言 > 正文

在通用程序集中使用DTO而不是对实体的共享引用是否有好处?

如何解决《在通用程序集中使用DTO而不是对实体的共享引用是否有好处?》经验,为你挑选了0个好方法。

我试图找到一个很长一段时间让我疯狂的问题的最终答案.

通常表示BLL应该包含业务逻辑和业务对象(BO),并且引用DAL.另一方面,DAL不能引用BLL,因此它不能接受BO作为参数,或者将BO作为返回值返回.

这个问题最常见的答案是:

a)接受简单参数,并返回(最好是Typed)DataSet和DataTables以返回数据:namespace DAL {public class Contacts public DataTable GetContacts(){...} public UpdateContacts(DataTable contacts){...}

b)第二个最推荐的解决方案是定义临时的,可序列化的数据传输对象(DTO)(有时称为值对象(VO)),它只包含字段和属性,没有方法,仅用于简单地传输数据BLL层,用于填充新的BO,然后丢弃它们.

c)使用定义BO的公共第三个程序集(例如,称为Entities.dll),并由所有3个层引用:UI,BLL和DAL.

选项a)实现最少的工作(不需要构建另一个程序集),因此为什么经常提出,但DataTables有额外的连接,不需要仅仅为简单的操作.

然而,目前尚不清楚b)或c)中的哪一个更好......

我看到b)有时提供,几乎从不c),虽然c)似乎是两者中最容易的.

我错过了什么?为什么c)很少提供,即使它看起来在逻辑上是最简单的,为什么a)当它明显不适合所有场景(例如返回单个对象)时提供?

谢谢!

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有