在发布此问题之前,我做了一些研究。在其他问题或帖子中,下面提供其中一个。我不清楚如何确定。
我有一个存储库,业务层调用该存储库以检索数据。例如,说我有以下BLL和DAL类:
class BllCustomer
{
public int CustomerId {get; set;}
public String Name {get; set;}
public BllAddress Address {get; set;}
}
class BllAddress
{
public int AddressId {get; set;}
public String Street {get; set;}
public String City {get; set;}
public String ZipCode {get; set; }
}
class DalCustomer
{
public int CustomerId {get; set;}
public String Name {get; set;}
public int AddressID {get; set;}
}
class DalAddress
{
public int AddressId {get; set;}
public String Street {get; set;}
public String City {get; set;}
public String ZipCode {get; set; }
}
如果BLL要检索Customer对象,它将在DAL中调用GetCustomerById(customerId)。
以下是我不清楚的问题:
我看不到如何确定DAL中的GetCustomerById应该返回哪个对象?它应该返回BllCustomer还是DalCustomer?
与客户关联的地址的检索(和/或转换为业务对象)应该在哪里?
如果DAL返回Dal对象,则检索和填写地址的逻辑只能在BLL中。如果DAL返回BLL对象,则检索和填写地址的逻辑可以在BLL或DAL中。当前,DAL正在返回业务对象,而填充它的逻辑在DAL中。
从我的阅读中,我猜没有对与错。从上面包含的链接中,有人说一种方式,其他人说另一种方式。但是,如何确定哪种方法最适合我的情况?
任何帮助,将不胜感激。