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

Antwort per Email an