2008-09-16 4 views
7

Ich habe das Entity Framework verwendet, um ein ziemlich einfaches Beispielprojekt zu starten. Im Projekt habe ich ein neues Entitätsdatenmodell aus einer SQL Server 2000-Datenbank erstellt. Ich bin in der Lage, die Daten mit LINQ to Entities abzufragen und Werte auf dem Bildschirm anzuzeigen.Implementieren der Datenbankunabhängigkeit mit Entity Framework

Ich habe eine Oracle-Datenbank mit einem extrem ähnlichen Schema (ich versuche, genau zu sein, aber ich kenne nicht alle Details von Oracle). Ich möchte, dass mein Projekt mit minimalem Aufwand sowohl auf dem SQL Server- als auch auf dem Oracle-Datenspeicher ausgeführt werden kann. Ich hatte gehofft, dass ich einfach die Konfigurationszeichenfolge meines Entity Data Model ändern könnte und das Entity Framework würde sich um den Rest kümmern. Es scheint jedoch, dass das nicht nahtlos funktioniert, wie ich dachte.

Hat jemand getan, was ich versuche zu tun? Auch hier versuche ich, eine Anwendung zu schreiben, die mit dem Entity Framework mit minimalem Aufwand Daten aus einer SQL Server- oder Oracle-Datenbank abfragen (und aktualisieren) kann. Das sekundäre Ziel besteht darin, die Anwendung nicht neu kompilieren zu müssen, wenn zwischen Datenspeichern hin- und hergeschaltet wird. Wenn ich "Modell von Datenbank aktualisieren" muss, kann das OK sein, weil ich nicht neu kompilieren müsste, aber ich möchte diesen Weg nicht gehen. Kennt jemand irgendwelche Schritte, die notwendig sein könnten?

+2

LOL, wenn es keine Datenbank Ignoranz bietet, wofür ist Entity Framework gut? Meine Güte! – Sklivvz

+0

@YeahStu .. Ich habe die gleiche Anforderung, wie ich gesehen habe, ist der Beitrag ziemlich alt ... Entity Framework hat so weit geändert .. waren Sie in der Lage, Datenbankunabhängigkeit mit EF zu erreichen .. bitte helfen Sie mir damit und teilen Sie Ihre Abhilfe ... Vielen Dank im Voraus. – NMathur

Antwort

2

Unter dem Begriff "Persistence Ignorance" wird allgemein verstanden, dass Ihre Entitätsklassen nicht mit Framework-Abhängigkeiten überflutet werden (wichtig für N-Tier-Szenarien). Dies ist derzeit nicht der Fall, da Entitätsklassen bestimmte EF-Schnittstellen ("IPOCO") implementieren müssen, im Gegensatz zu einfachen alten CLR-Objekten. Wie ein anderes Poster erwähnt hat, gibt es dafür eine Lösung namens Persistence Ignorance (POCO) Adapter for Entity Framework V1, und EF V2 wird POCO sofort unterstützen.

Aber ich denke, was Sie wirklich im Sinn hatte, war Datenbankunabhängigkeit. Mit einer großen Konfigurations-XML, die das Speichermodell, das konzeptionelle Modell und die Zuordnung zwischen den beiden enthält, aus denen zur Entwurfszeit ein typisierter ObjectContext generiert wird, fällt es mir auch schwer, transparent darzustellen, wie zwei Datenbanken unterstützt werden.

Was wahrscheinlich vielversprechender aussieht, ist die Anwendung eines datenbankunabhängigen ADO.NET-Providers wie dem von DataDirect. DataDirect hat auch die Unterstützung von EF für das dritte Quartal 2008 angekündigt.