Ich verwende Dapper
, um auf meine Daten zuzugreifen, wie unten beschrieben. Es gibt nur zwei Funktionen, aber echter Code kann Hundreads haben. Ich möchte eine bestimmte Datenbanktabelle alle ausgeführten SQL-Anweisungen anmelden. Dies sollte für alle DataRepository-Klassenfunktionen gelten.Erweitern Sie Klassenfunktionen mit wiederholbarem gemeinsamen Code
Was ist der beste Weg, um solche Funktionen zu implementieren, um zu vermeiden, es innerhalb jeder einzelnen Funktion wie SelectCustomers
, SelectEmployees
, etc. zu wiederholen? Bitte teilen Sie ein Beispiel.
Public Class BaseRepository
Protected Shared Function OpenConnection() As IDbConnection
Dim connection As IDbConnection
connection = New SqlConnection(MyAppSettings.PascomDB)
connection.Open()
Return connection
End Function
End Class
Public Class DataRepository
Inherits BaseRepository
Public Function SelectCustomers() As IEnumerable(Of Customers)
Using connection As IDbConnection = OpenConnection()
Dim query As String = "SELECT * FROM Customers"
Return connection.Query(Of Customers)(query)
connection.Close()
End Using
End Function
Public Function SelectEmployees() As IEnumerable(Of Employees)
Using connection As IDbConnection = OpenConnection()
Dim query As String = "SELECT * FROM Employees"
Return connection.Query(Of Employees)(query)
connection.Close()
End Using
End Function
End Class
Ich glaube, Sie suchen in sein sollte Aspektorientierte Programmierung. – plalx