将数据对象从数据访问层返回到接口的最佳做法是什么?
目前,我有一个与数据库通信的层,并将DataTable返回到业务层,然后业务层实例化Business Objects并返回到接口。这不是可怜或糟糕的做法吗?
我的问题是:
- 从DAL返回数据对象的最佳方法是什么?
- 如果DAL不应该返回数据对象,那么如何将数据接收到DataBinding接口?
这不是问题,而是最佳实践问题。
提前感谢大家
答案 0 :(得分:2)
答案 1 :(得分:0)
我不确定DAL 不应该返回数据对象 - 有许多个人偏好,它取决于诸如应用程序规模等因素。在我构建的大多数(小型)应用程序中,我在DAL中使用了一个datareader而不是填充和传递DataTables。 DAL使用datareader填充业务对象,然后将业务对象作为集合返回到服务层。
在一个更复杂的情况下,表并不总是等同于业务对象,我已经使用datareader来填充DTO(数据传输对象 - 非常简单的类,它们只包含表示表结构且没有逻辑的变量)作为集合返回到服务层。服务层从一种或多种类型的DTO构造业务对象。
我并不是说这是一个明确的答案(“最佳实践”问题的问题!)但希望我的经验可以提供一个见解(在做什么或不做什么是值得商榷的!)。我很感兴趣,看看其他人可以为此做出哪些贡献。我想你可能得到的一个答案是调查ORM的使用!