C# Datenbank-Abstraktion für Microsoft SQL Server, Oracle, MySQL und DB2
Ich brauche ein Beispiel-Quellcode in C#, die abstracts Datenbanken (einfach zu ändern, von einer Datenbank in eine andere mit minimalem code-änderungen). Kennst du ein paar Beispiel-Websites oder tutorials mit guter Qualität?
Bestimmte Ziel-Datenbanken sind wie folgt:
1. Microsoft SQL Server
2. Oracle
3. MySQL
3. DB2
Meine spezifischen Anforderungen und auftretenden Probleme sind die folgenden:
1. Abstraktion von Klassen in Daten zugreifen.
2. Die Verwendung von Parametern in aufrufen von gespeicherten Prozeduren. In Microsoft SQL Server @ Ordnung ist. Andere Datenbanken werden nicht unterstützt @.
3. Die Konvertierung der syntax, aus einer Datenbank in eine andere. Haben wir irgendeine Art von "generic" - Abfrage und dann machen einige Klassen erzeugt, dass Abfragen, die zu einem Ziel-Datenbank?
4. Streng typisierten datasets in data access layer. Ich erinnere mich, aus Erfahrung, dass der TableAdapter-und Abfrage-Assistenten von Visual Studio nicht für MySQL.
Danken Ihnen im Voraus für Ihr know-how und Zeit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick auf
und anderen ORMs
Obwohl ich empfehle NHibernate, können Sie auch wollen, betrachten Sie die Data Access application block Microsoft Enterprise Library.
Natürlich jede ORM sollte Ihnen die Funktionalität, die Sie benötigen.
Der beste Weg, dies zu nähern, ist die Verwendung der Schnittstellen, bereitgestellt durch die Datenbank-Anbieter; Sie sind fast parallel in der Funktionalität. Erstellen Sie eine statische factory-Klasse zum erstellen von Schnittstellen für den Befehl-Adapter der data-Adapter und verbindungen, basierend auf der Datenbank, welche konfiguriert ist. Zum Beispiel:
Ihrem client-code nicht kennen den Unterschied, wenn Sie haben, um die Konfigurations-string um. VS-docs untersuchen die Schnittstellen der einzelnen Objekte, die Sie normalerweise verwenden, und halten Sie diese verwenden, und es wird ziemlich einfach sein - wenn du hack Ihren Weg durch ein paar der Dinge.