Thomas Bandt schrieb:
wie so oft denke ich gerade den Wald vor lauter Bäumen nicht
zu sehen. Ich habe mir bereits vor Monaten einen DAL gebastelt
und den jetzt mal etwas verfeinert.
Würde mich freuen vom einen oder anderen zu hören, ob das so
passt, oder ob es gänzlicher Unsinn ist.
Ich weiß, dass man das Ganze noch viel tiefer abstrahieren
kann (gell, Andreas), das will ich aber nicht.
Weiss jetzt nicht genau ob Du schon über DbCommon unter 2.0 gestolpert
bist. Wenn man dies verwendet und alles schön in Stored Procedures
erledigt hat man sicherlich schon ein gute Abstrahierung ohne viel
Aufwand. Und wenn Du es kennst, ist es möglichereise für andere
Interessant :)
Hier ein kurzes Beispiel (ohne using() wegen der einfacheren Lesbarkeit).
DbProviderFactory factory =
DbProviderFactories.GetFactory(ConfigurationManager.ConnectionStrings["blah"].ProviderName);
DbConnection conn = factory.CreateConnection();
conn.ConnectionString =
ConfigurationManager.ConnectionStrings["blah"].ConnectionString;
conn.Open();
DbCommand cmd = conn.CreateCommand();
cmd.CommandText ="DELETE_FOO_BAR";
cmd.CommandType = CommandType.StoredProcedure;
DbParameter par = factory.CreateParameter();
par.ParameterName = "name";
par.Value = "joe";
cmd.Parameters.Add(par);
cmd.ExecuteNonQuery();
conn.Close();
So muss nur noch der ConnectionString angepasst werden (und natürlich
das Providername Attrribut des Connectionstring Eintrags in der
web.config), und die Anwendung sollte ohne Anpassungen unter anderen
"vernünftigen" Datenbankem laufen die Stored Procedures unterstützen,
ohne eine weitere Anpassung am Quelltext der Anwendung zu machen.
Achso, Datenbankspezifische Stored Procedures sind natürlich weiterhin
nötig.
Das ganze kann man doch Nett ein wenig mehr Kapseln, gerade das
hinzufügen der Paramter ist sonst was nervig.
--
Freundliche Grüße
Albert Weinert
http://der-albert.com
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net