Ich habe eine Dal-Ebene mit vielen Methoden, alle rufen gespeicherte Prozeduren, einige Rücksprunglisten (so mit einer Verwendung von SqlDataReader
), andere nur einen bestimmten Wert.Refactor Code in die Verwendung der Anweisung
Ich habe eine Hilfsmethode, die die SqlCommand
erstellt:
protected SqlCommand CreateSprocCommand(string name, bool includeReturn, SqlDbType returnType)
{
SqlConnection con = new SqlConnection(this.ConnectionString);
SqlCommand com = new SqlCommand(name, con);
com.CommandType = System.Data.CommandType.StoredProcedure;
if (includeReturn)
com.Parameters.Add("ReturnValue", returnType).Direction = ParameterDirection.ReturnValue;
return com;
}
Jetzt ist mein Durchschnitt (übermäßig vereinfacht) Methode Körper wie folgt aussehen:
SqlCommand cmd = CreateSprocCommand("SomeSprocName"); //an override of the above mentioned method
try {
cmd.Connection.Open();
using (var reader = cmd.ExecuteReader()) {
//some code looping over the recors
}
//some more code to return whatever needs to be returned
}
finally {
cmd.Connection.Dispose();
}
Gibt es eine Möglichkeit, um diese zu Refactoring, so dass Ich werde meine Hilfsfunktion nicht verlieren (es macht ziemlich viel sonst repetitive Arbeit), und kann doch using
verwenden?
Wirklich nett! :-) –
Es macht wahrscheinlich Sinn, die Verbindung als Nebeneffekt in diesem Fall zu öffnen ... (da es als Nebeneffekt geschlossen wird) –
@ sambo99: Yup, wird bearbeiten. –