我正在尝试编写一个在 BLL 和 DAL 之间具有非常严格界限的小型应用程序,现在我想知道在层之间传递数据(域传输对象)的最佳方法是什么。
我在 BLL 和 DAL 都可以访问的域级别(类库)中实现了一些类。这些类基本上只包含属性/数据成员,目前反映 DAL 数据。前任:
class CustomerData
{
// some data fields
}
然后我在 BLL 中实现了一些类:
class Customer : CustomerData
{
// Some methods
}
在我的 DAL 中,我通过 Linq-to-Sql 从数据库中获取客户记录。然后我通过以下方式将 linq 对象映射到我的 Domain 对象:
CustomerData.field = LinqObject.field
// Etc
因此,我的想法是,我现在在请求时将 CustomerData 实例从我的 DAL 到 BLL(并且我应该将 Customer 实例传递给我的 UI)。
因此,在我的 BLL 中,我将收到一个 CustomerData 实例,但现在我想从中创建一个 Customer。
问题:
- 我现在是否必须在我的 BLL 中创建一个客户实例并再次复制所有字段成员?
客户 c = 新客户;c.field = CustomerData.field; - 如何在没有字段复制步骤的情况下从 CustomerData 创建客户?
- 我应该而不是使用 composition 吗?
类客户 { 客户数据数据;} - 在我当前的布局中是否有更有效的方法(更少的编码等)来做到这一点?
- 有没有更好的方法来做到这一点?
- 一般有什么意见吗?
谢谢 !