Ich habe einige Nachforschungen angestellt, bevor ich diese Frage gestellt habe. Eine der folgenden Fragen oder Beiträge ist unten aufgeführt. Ich konnte mir nicht klar machen, wie ich bestimmen soll.
Geschäftsobjekte innerhalb einer Datenzugriffsschicht
Ich habe ein Repository und die Business Layer rufen das Repository auf, um die Daten abzurufen. Angenommen, ich habe die folgenden Klassen für BLL und 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; }
}
Wenn die BLL ein Kundenobjekt abrufen möchte, ruft sie GetCustomerById (customerId) in DAL auf.
Folgendes sind meine Bedenken, die ich nicht klarstellen konnte:
Ich kann nicht sehen, wie bestimmt werden soll, welches Objekt die GetCustomerById in DAL zurückgeben soll. Sollte es BllCustomer oder DalCustomer zurückgeben?
Wo soll die mit dem Kunden verknüpfte Adresse abgerufen (und / oder in ein Geschäftsobjekt konvertiert) werden?
Wenn der DAL Dal-Objekte zurückgibt, kann sich die Logik zum Abrufen und Ausfüllen der Adresse nur in der BLL befinden. Wenn die DAL BLL-Objekte zurückgibt, kann die Logik zum Abrufen und Ausfüllen der Adresse entweder in der BLL oder in der DAL liegen. Derzeit gibt die DAL die Geschäftsobjekte zurück und die Logik zum Ausfüllen befindet sich in der DAL.
Nach dem, was ich gelesen habe, gibt es wohl kein Richtig oder Falsch. Über den oben angegebenen Link sagen Leute den einen und die anderen den anderen Weg. Aber wie bestimme ich, welches für meinen Fall am besten geeignet ist?
Jede Hilfe wäre dankbar.