Bonjour à tous...

Je vais commencer par planter le décors :

Nous sommes éditeur de logiciels et développement une application qui doit pouvoir tourner sur 3 moteurs (MSSQL, MySQL et Oracle). Le client final choisit le moteur qu'il préfère puisque c'est lui qui en assurera la maintenance.

Plus qu'une application, c'est une solution entière que nous proposons dont certains modules ne sont pas en .NET et exploite une couche d'accès aux données "maison".

Depuis maintenant 2-3 ans, nous ajoutons à cette solution des modules .NET/C# et avons choisi EF. Nous utilisons le provider natif pour MSSQL et dotConnet DevArt pour les 2 autres.

Pour adresser les 3 moteurs, un ancien collaborateur avait développé un outil capable d'extraire d'un EDMX le SSDL et de l'altérer partiellement pour recoller les morceaux. Ainsi, on a 1 CSDL/MSL commun et on ajoute juste en ressources de l'exe les SSDL ainsi extraites.

Lorsque j'ai compris ça, je me suis d'abord dit que c'était un peu "artisanal" comme technique mais en googlant un peu j'ai cru comprendre que c'était la technique normale, cf. cet article et celui-ci.

Ma question :

Nous devons ajouter un 4ème moteur à la liste. Ce qui veut dire qu'avec cette technique il faut maintenir en permanence 4 EDMX (donc 4 bases de référence) et en plus mettre à jour l'outil d'extraction de SSDL pour ce nouveau SGBD. De plus, il semble que pour des problèmes de casse de nom de tables et de colonnes, nous ayons aussi besoin de faire un MSL spécifique...

Bref, comme les posts que j'ai cité ci-dessus datent d'1 ou 2 ans je me dis que ça a peut être évolué.
J'ai par exemple commencer à regarder Entity Developer de DevArt mais il ne semble pas possible d'associer plusieurs Storage à un Conceptual.

Si vous avez des pistes je veux bien les suivre.

Merci,