Question

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 en mesure d'interroger les données à l'aide de LINQ to Entities et d'afficher des valeurs à l'écran.

J'ai une base de données Oracle avec un schéma extrêmement similaire (j'essaie d'être exact mais je ne connais pas tous les détails d'Oracle). J'aimerais que mon projet puisse s'exécuter sur les magasins de données SQL Server et Oracle avec un minimum d'effort. J'espérais pouvoir simplement changer la chaîne de configuration de mon modèle de données Entity et qu'Entity Framework se chargerait du reste. Cependant, il semble que cela ne fonctionnera pas de manière transparente comme je le pensais.

Quelqu'un a-t-il fait ce que j'essaie de faire? Encore une fois, j'essaie d'écrire une application capable d'interroger (et de mettre à jour) les données d'une base de données SQL Server ou Oracle avec un minimum d'effort à l'aide de Entity Framework. L’objectif secondaire est de ne pas avoir à recompiler l’application lors du basculement entre les magasins de données. Si je dois "Mettre à jour le modèle à partir de la base de données" c'est peut-être acceptable parce que je n'aurais pas besoin de recompiler, mais je préférerais ne pas avoir à suivre cette voie. Est-ce que quelqu'un connaît des démarches qui pourraient être nécessaires?

Était-ce utile?

La solution

Ce que l’on entend généralement par le terme "Persistence Ignorance" est-ce que vos classes d'entité ne sont pas inondées de dépendances de framework (important pour les scénarios N-tier). Ce n'est pas le cas actuellement, car les classes d'entités doivent implémenter certaines interfaces EF ("IPOCO"), par opposition aux anciens objets CLR simples. Comme l'a mentionné une autre affiche, il existe une solution appelée Adaptateur POCO (Persistence Ignorance) pour Entity Framework V1 , et EF V2 prendra en charge POCO tel qu’il a été configuré.

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

Ce qui semble probablement plus prometteur est l’application d’un fournisseur ADO.NET indépendant de la base de données, comme celui de DataDirect . DataDirect a également annoncé la prise en charge de EF pour le troisième trimestre de 2008.

Autres conseils

http://blogs.msdn.com/jkowalski/archive/2008/09/09/persistence-ignorance-poco-adapter-for-entity-framework-v1.aspx

Le principal problème est que le cadre de l'entité n'a pas été conçu avec une ignorance de la persistance. Honnêtement, je chercherais à utiliser autre chose qu'un cadre d'entité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top