Ho fatto delle ricerche prima di pubblicare questa domanda. Tra le altre domande o post, uno di questi è fornito di seguito. Non sono riuscito a capire bene come determinare ..
Oggetti business all'interno di un livello di accesso ai dati
Ho un repository e i livelli aziendali chiamano il repository per recuperare i dati. Ad esempio, supponiamo che io abbia le seguenti classi per BLL e 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; }
}
Se il BLL desidera recuperare un oggetto Cliente, chiamerebbe GetCustomerById (customerId) in DAL.
Di seguito sono le mie preoccupazioni che non sono riuscito a capire bene:
Non riesco a vedere come determinare quale oggetto deve restituire GetCustomerById in DAL? Dovrebbe restituire BllCustomer o DalCustomer?
Dove dovrebbe essere il recupero (e / o la conversione in oggetto Business) dell'indirizzo associato al cliente?
Se il DAL restituisce gli oggetti Dal, la logica per recuperare e compilare l'indirizzo può essere solo nel BLL. Se DAL restituisce oggetti BLL, la logica per recuperare e compilare l'indirizzo può essere in BLL o DAL. Attualmente il DAL sta restituendo gli oggetti business e la logica per compilarlo è nel DAL.
Da quello che ho letto, immagino non ci sia giusto o sbagliato. Dal link incluso sopra, ci sono persone che dicono in un modo e gli altri dicono nell'altro modo. Ma come faccio a determinare quale funziona meglio per il mio caso?
Qualsiasi aiuto sarebbe apprezzato.