Я провел некоторое исследование, прежде чем опубликовать этот вопрос. Среди других вопросов или постов, один из них приведен ниже. Я не мог понять, как определить ..
Бизнес-объекты на уровне доступа к данным
У меня есть хранилище, и бизнес-уровни вызывают хранилище для получения данных. Например, скажем, у меня есть следующие классы для 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, он вызовет GetCustomerById (customerId) в DAL.
Следующее - мои проблемы, которые я не мог понять ясно:
Я не вижу, как определить, какой объект должен возвращать GetCustomerById в DAL? Должен ли он вернуть BllCustomer или DalCustomer?
Где должен быть поиск (и / или преобразование в бизнес-объект) адреса, связанного с клиентом?
Если DAL возвращает объекты Dal, логика для извлечения и заполнения адреса может быть только в BLL. Если DAL возвращает объекты BLL, то логика для извлечения и заполнения адреса может быть либо в BLL, либо в DAL. В настоящее время DAL возвращает бизнес-объекты, и логика для его заполнения находится в DAL.
Из того, что я прочитал, я думаю, что нет правильного или неправильного. По ссылке, приведенной выше, есть люди, которые говорят одно, а другие говорят другое. Но как определить, что лучше всего подойдет для моего случая?
Любая помощь будет оценена.