正在使用.net 2.0 Windows应用程序。 数据访问层[DAL]执行存储过程并将datareader / dataset返回到业务层[BL]。
BL引用DAL dll,遍历datareader / dataset,读取列值,创建业务对象并将其返回到UI层。
鉴于此,业务层是否可以引用数据库表的列?
这是一个很好的做法吗?图层设计?
如果我从DAL而不是dataset / datareader返回Business对象,那么我的DAL项目也必须引用BL dll。所以,这里不会有循环引用吗? 感谢。
答案 0 :(得分:3)
不是良好做法,因为您的数据层正在公开实现细节,因此信息隐藏和封装将丢失。
您应该传递为数据建模的对象。
例如,您应该传递order
对象,而不是Order
数据行。