2008-09-16 18 views
7

J'ai utilisé Entity Framework pour démarrer un exemple de projet assez simple. Dans le projet, j'ai créé un nouveau modèle de données d'entité à partir d'une base de données SQL Server 2000. Je suis capable d'interroger les données en utilisant LINQ to Entities et d'afficher les valeurs sur l'écran.Comment implémenter l'indépendance de base de données avec Entity Framework

J'ai une base de données Oracle avec un schéma très similaire (je suis en train d'être exacte, mais je ne connais pas tous les détails d'Oracle). Je souhaite que mon projet puisse s'exécuter dans les magasins de données SQL Server et Oracle avec un minimum d'effort. J'espérais pouvoir simplement modifier la chaîne de configuration de mon Entity Data Model et Entity Framework s'occuperait du reste. Cependant, il semble que cela ne fonctionnera pas de façon transparente comme je le pensais.

Quelqu'un at-il fait ce que je suis en train de faire? Encore une fois, j'essaie d'écrire une application qui peut interroger (et mettre à jour) des données à partir d'une base de données SQL Server ou Oracle avec un minimum d'effort en utilisant Entity Framework. L'objectif secondaire est de ne pas avoir à re-compiler l'application lors d'un basculement entre les magasins de données. Si je dois "mettre à jour le modèle à partir de la base de données" cela pourrait être correct car je n'aurais pas à recompiler, mais je préférerais ne pas avoir à suivre cette route. Est-ce que quelqu'un sait des mesures qui pourraient être nécessaires?

+2

LOL si elle ne fournit pas l'ignorance de base de données, ce qui est une entité bon cadre pour? Jeez! – Sklivvz

+0

@YeahStu .. J'ai la même exigence, comme je l'ai vu le poste est assez vieux ... Entity Framework a modifié jusqu'à présent .. étiez-vous en mesure d'obtenir l'indépendance de base de données en utilisant EF .. s'il vous plaît aidez-moi et partagez votre solution de contournement ... Merci d'avance. – NMathur

Répondre

2

Ce qui est généralement compris sous le terme « persistance ignorance » est que vos classes d'entités ne sont pas inondés de dépendances cadres (important pour les scénarios N-tier). Ce n'est pas le cas en ce moment, car les classes d'entités doivent implémenter certaines interfaces EF ("IPOCO"), par opposition aux anciens objets CLR. Comme une autre affiche l'a mentionné, il existe une solution appelée Persistence Ignorance (POCO) Adapter for Entity Framework V1 pour cela, et EF V2 prendra en charge POCO hors de la boîte.

Mais je pense que ce que vous aviez vraiment à l'esprit était l'indépendance de base de données. Avec une grande configuration XML qui inclut le modèle de stockage, le modèle conceptuel et le mappage entre les deux à partir desquels un ObjectContext typé sera généré au moment du design, j'ai également du mal à imaginer comment supporter de manière transparente deux bases de données.

Ce qui ressemble probablement plus prometteuse est l'application d'un fournisseur de base de données ADO.NET indépendant comme celui de DataDirect. DataDirect a également annoncé le soutien d'EF pour le troisième trimestre de 2008.