Ich habe also eine Datenzugriffsschicht über TDD erstellt und bin etwas besorgniserregend geworden. Ich würde lieber nicht den falschen Weg einschlagen, also dachte ich mir, ich würde euch fragen, ob meine Gedanken mit einer sauberen Architektur übereinstimmen.
Die Methoden in meiner Datenzugriffsschicht (kurz DAL) sind ziemlich einfach. Sie stimmen mit den in der Datenbank gespeicherten Prozeduren überein (keine andere Möglichkeit, sie aufzurufen, um die Dinge sauber zu halten), und sie enthalten dieselben Parameter wie die Prozeduren. Sie stellen dann einfach eine Verbindung zur Datenbank her und geben das Abfrageergebnis zurück. Hier ist ein Beispiel:
public int DeleteRecord(int recordId)
{
recordId.RequireThat("recordId").NotZeroOrLess();
List<SqlParameter> parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter { ParameterName = "@RecordId", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Input, Value = recordId});
return this.ExecuteNonQuery("DeleteRecord", parameters.ToArray());
}
Dies funktioniert perfekt für diese Art von Methode, da ich mit der Ergebnismenge nichts Sinnvolles mache. Ich möchte nur sicherstellen, dass der Befehl funktioniert, also werde ich das Ergebnis der Nichtabfrage zurückgeben, bei der es sich nur um die betroffenen Zeilen handelt, und ich kann die Logik anhand dieser Nummer überprüfen.
In einer anderen DAL-Methode möchte ich jedoch einen Datensatz laden. Meine Ladeprozedur wird für selects
eine Reihe von Tabellen ausgeführt und gibt a zurück DataSet
, aber ich kämpfe damit, ob mein DAL die Geschäftsobjekte innerhalb der Methode mit dem erstellen DataSet
soll oder ob meine Geschäftsobjekte selbst nur eine Load()
Methode haben sollen, die das erhält DataSet
aus dem DAL, und füllt sich dann im Grunde selbst aus.
Wenn Sie dies über die DAL tun, wird die Logik in den Geschäftsobjekten weniger logisch sein (obwohl dies nur eine ausgewählte Logik ist, es ist immer noch logisch), aber die DAL wird ein wenig überfüllt und es fühlt sich so an, als würde sie wirklich etwas tun, was sie nicht tun sollte. ' nicht tun.
Was denkt ihr?