Entity Framework Oracle und Sql Server - Erstellen einer datenbankunabhängigen Anwendung

8

Wir versuchen, eine Datenzugriffsebene für die Verwendung von Oracle und SQL Server (nicht gleichzeitig) zu erstellen.

Wir verwenden EF Model-first zum Erstellen des Modells und zum Erstellen der SQL-Skripts zum Erstellen der Datenbank. Unser erster Gedanke war, zwei EDMX-Dateien zu erstellen, eine für jeden Typ, und je nach Bedarf des Kunden die entsprechende zu verwenden. Wir verwenden den Oracle- und SQL Server-Datenbankgenerierungsworkflow und die DDL-Generierungsvorlage, um die Skripts für jede Datenbank zu erstellen.

Unser Hauptproblem ist, wenn sich das Datenbankschema ändert, wollen wir die DB nicht löschen und neu erstellen, sondern nur die Migrationsskripte erstellen, um die Datenbankbasis auf unserem Modell zu aktualisieren (Clients haben viele Daten, die verloren gehen).

Wir verwenden das EF Power Pack zum Extrahieren der Migrationsskripte für SQL Server, aber für Oracle gibt es nichts Vergleichbares.

Wir möchten Hilfe bei der Suche nach einer guten Datenschicht (1 EDMX für Oracle und SQL Server, wenn es möglich und nicht kompliziert ist) und eine gute Möglichkeit, Datenbankänderungen von unserem Modell zu generieren, um bestehende Client-DBs im Falle einer neuen Anwendung zu aktualisieren veröffentlichen

Wir fanden das als Ausgangspunkt Ссылка , aber Oracle Support wird nicht erwähnt.

Wir haben Code-First und EF Migrations ausprobiert, aber Oracle hat uns bei der DB-Erstellung und -Migration erneut gescheitert.

Irgendwelche Empfehlungen, wie wir das erreichen können?

Danke

    
christosst 24.01.2012, 14:06
quelle

2 Antworten

4

Es gibt keine Möglichkeit, ein einzelnes EDMX für SQL Server und Oracle zu haben. EDMX besteht aus drei Teilen CSDL (Entitätsdefinition), SSDL (Datenbankdefinition), MSL (Zuordnung zwischen diesen Definitionen). SSDL muss immer auf die konkrete Datenbank ausgerichtet sein, so dass Sie mindestens separate SSDL für Oracle und SQL Server benötigen und wenn Sie Glück haben, benötigen Sie auch keine separate MSL (Mapping muss genau das gleiche sein, was wahrscheinlich nicht passieren wird, wenn Sie ein Tool zum Generieren verwenden) die Datenbank).

Sie benötigen also immer mindestens einen Teil der EDMX-Datei für die zweite DB und pflegen sie manuell.

Wenn Sie eine Datenbankmigration benötigen, die Oracle unterstützt, müssen Sie nach einem Tool von Oracle (oder einem Drittanbieter) suchen. Zum Beispiel bietet RedGate Tools zur Unterstützung der Schemamigration für SQL Server und Oracle .

Visual Studio Premium und Ultimate Edition bietet auch Tools zum Vergleichen von Datenbankschemas. Es unterstützt standardmäßig nur SQL Server, aber Toad Extensions sollte auch Unterstützung für Oracle hinzufügen.

Sobald Sie eines dieser Tools haben, müssen Sie nur das auf dem Kundenserver bereitgestellte Schema mit Ihrem neuen Schema vergleichen und das Tool sollte ein Migrationsskript für Sie erstellen.

    
Ladislav Mrnka 24.01.2012 15:32
quelle
0

Der beste Artikel, den ich zu diesem Thema gefunden habe, stammt von Paul Reynolds Blog . Versuchen Sie, von Teil 5 zu Teil 9 zu gehen.

Es gibt so viele Probleme mit Oracle, die dort erwähnt werden ... ist sehr hilfreich!

    
Learner 22.01.2014 10:13
quelle