2010-01-16 5 views
1

J'ai actuellement développé une application qui se connecte à la base de données SQL Server 2005, de sorte que mes objets DAL ont été générés en utilisant les informations de cette base de données.application SubSonic qui se connecte à plusieurs bases de données

Il sera également possible de se connecter à une base de données Oracle et MySQL, avec les mêmes structures de table (à part les différences normales dans les champs, comme varbinary (max) dans SQL Server et BLOB dans Oracle, etc.). Pour ce faire, j'ai déjà défini plusieurs chaînes de connexion et plusieurs fournisseurs SubSonic pour les différentes bases de données sur lesquelles l'application fonctionnera. Ma question est la suivante: si j'ai généré mes objets avec une base de données SQL Server, les objets générés devraient-ils fonctionner de manière transparente avec les autres DB ou dois-je générer une DAL différente pour chaque moteur de base de données que j'utilise? Devrais-je être au courant de tout bogue que je pourrais rencontrer lors de ces opérations?

Merci d'avance pour tout conseil sur ce problème.

Répondre

0

J'utilise SubSonic 2.2 par la voie ....

D'après ce que j'ai pu tester jusqu'à présent, je ne vois pas un moyen facile de réaliser ce que je suis en train de faire . La situation idéale pour moi aurait été de générer des objets SubSonic à l'aide de SQL Server par exemple, et de pouvoir basculer dynamiquement vers MySQL en créant simplement à l'exécution le bon fournisseur et sa chaîne de connexion. Je suis arrivé à un point où mon application serait correctement connecter à partir de SQL Server à une base de données MySQL, mais il y a un point où l'application échoue depuis SubSonic génère en interne des requêtes de la forme

SELECT * FROM dbo.MyTable 

qui MySQL ne supporte évidemment pas. J'ai également noté des requêtes qui ont inclus des noms de table avec des parenthèses ([]), il semble donc qu'il y ait un certain nombre de facteurs qui limiteraient l'utilisation d'un fournisseur le long de plusieurs moteurs de base de données. Je suppose que ma seule autre option est de trier avec plusieurs fournisseurs générés, même si je dois admettre que cela ne me rassure pas en sachant que je vais avoir N copies des mêmes classes de mon projet.

J'aimerais vraiment avoir des nouvelles de quelqu'un d'autre si elles ont eu des expériences similaires. Je serai sûr de poster mes résultats une fois que tout sera réglé et que je travaillerai pour mon projet.

L'un de ces éléments a-t-il changé dans la version 3.0? Ce serait certainement une raison valable pour moi d'améliorer si la vie est plus facile sur cette question ...

Questions connexes