Hallo zusammen,
ich suche nach einem Ansatz, wie ich es am besten umsetze, dem Anwender in einem Programm die Möglichkeit zu geben, entweder mit einer MS SQL oder einer MYSQL Datenbank zu arbeiten.
Die Auswahl erfolgt bei der ersten Nutzung des Programms über eine Konfigurationsdatei und bleibt dann auch so.
Ich könnte jetzt natürlich bei jedem DB-Zugriff prüfen
if (MSSQL)
...
else if (MYSQL)
...
Aber das ist bestimmt nicht der Weisheit letzter Schluß.
Habt ihr da einen Tipp für mich, wo ich mich einlesen kann?
Danke und Grüße
Kommt ein OR-Mapper(zb nHibernate) in Frage? Da stellst du es in der Konfig ein welcher Dialekt verwendet wird und den Rest übernimmt nHibernate für dich.
Aber das ist bestimmt nicht der Weisheit letzter Schluß
Definitiv nicht!
Ich kann mich chavez anschließen:
Wirf mal einen Blick auf das Entity Framework oder NHibernate - die sollten beide sowohl MSSQL als auch MySQL unterstützen.
Generell kannst du dir das Fassade bzw. das Strategy-Pattern (in Kombination mit dem Factory-Pattern) anschauen bzw. etwas konkreter das Repository-Pattern in Verbindung mit DI.
Du kannst auch mit DbFactory arbeiten, dann sind die grundsätzlichen Datenbankzugriffe gleich.
Connectionstring und einige SQL-Befehle (top, limit) sind dennoch verschieden.
Siehe http://www.seven-c.de/files/datenbankenhowto.htm#10 Kapitel 11
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Kommt ein OR-Mapper(zb nHibernate) in Frage? Da stellst du es in der Konfig ein welcher Dialekt verwendet wird und den Rest übernimmt nHibernate für dich.
Danke, das sieht ja gut aus, aber auch nach viel Handarbeit.
Kennt jemand von euch dieses AddIn für Visual Studio? US$ 99 scheinen die Features wert zu sein.
http://www.mindscapehq.com/products/nhdesigner
Viele Grüße
kom2006
Ich verwende nHibernate in Kombination mit Fluent nHibernate. Damit geht das ganze eigentlich ratz-fatz.
Und die Config für nHibernate ist ja auch schnell erledigt. Dazu gibts auf der Homepage ein Tutorial.
In der neuesten NHibernate Version ist auch ein eigenes Fluent Mapping Interface mit dabei. Ist auch ein Blick wert.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Wollte nur kurz Ergebnis-Rückmeldung geben:
Ich habe mir
http://www.mindscapehq.com/products/nhdesigner
gekauft und komme als O/R-Einsteiger damit sehr gut zu recht.
Viele Grüße