Ich würde sagen, es hängt davon ab, was man die „DB-Schicht“ tun will ...
Wenn Sie allgemeine Routinen für eine gespeicherte Prozedur ausgeführt wird, oder SQL-Anweisung, die einen Dataset zurück, dann mit statische Methoden wären für mich sinnvoller, da Sie keinen permanenten Verweis auf ein Objekt benötigen, das den Datensatz für Sie erstellt hat.
Ich würde auch eine statische Methode verwenden, wenn ich einen DB-Layer erstellen würde, der als Ergebnis eine stark typisierte Klasse oder Sammlung zurückgibt.
Wenn Sie auf der anderen Seite eine Instanz einer Klasse erstellen möchten, indem Sie einen gegebenen Parameter wie eine ID verwenden (siehe @ barret-conrads Antwort), um eine Verbindung zur Datenbank herzustellen und den erforderlichen Datensatz zu erhalten wahrscheinlich nicht eine statische Methode für die Klasse verwenden möchten. Aber selbst dann würde ich sagen, dass Sie wahrscheinlich eine Art von DB Helper-Klasse haben würden, die statische Methoden hätte, auf die Ihre andere Klasse angewiesen war.