C# 从DAL返回数据对象

C# 从DAL返回数据对象,c#,data-access-layer,bll,C#,Data Access Layer,Bll,将数据对象从数据访问层返回到接口的最佳实践是什么 目前,我有一个与数据库通信并将DataTable返回到业务层的层,然后业务层恢复业务对象并返回到接口。这不是可怜的做法吗 我的问题是: -从DAL返回数据对象的最佳方式是什么 -如果DAL不应该返回数据对象,那么如何将数据获取到接口以进行数据绑定 这不是一个问题,而是一个最佳做法问题 提前感谢大家您看过存储库模式了吗 我不确定DAL是否应该返回数据对象-有许多个人偏好,这取决于应用程序的规模等因素。在我构建的大多数(小型)应用程序中,我在DAL

将数据对象从数据访问层返回到接口的最佳实践是什么

目前,我有一个与数据库通信并将DataTable返回到业务层的层,然后业务层恢复业务对象并返回到接口。这不是可怜的做法吗

我的问题是:

-从DAL返回数据对象的最佳方式是什么

-如果DAL不应该返回数据对象,那么如何将数据获取到接口以进行数据绑定

这不是一个问题,而是一个最佳做法问题


提前感谢大家

您看过存储库模式了吗

我不确定DAL是否应该返回数据对象-有许多个人偏好,这取决于应用程序的规模等因素。在我构建的大多数(小型)应用程序中,我在DAL中使用了datareader,而不是填充和传递数据表。DAL使用datareader填充业务对象,然后将这些对象作为集合返回到服务层

在一个更复杂的场景中,表并不总是等同于业务对象,我使用datareader来填充DTO(数据传输对象——非常简单的类,只包含表示表结构的变量,没有逻辑),这些DTO作为集合返回到服务层。服务层从一种或多种类型的DTO构造业务对象

虽然我并不是说这是一个明确的答案(“最佳实践”问题!),但我希望我的经验能够提供一个见解(关于做什么或不做什么是有争议的!)。我自己也很感兴趣,想看看其他人对此有何贡献。我想你可能会得到一个答案,那就是调查ORM的使用