2010-01-27 10 views
2

Je souhaite générer un DataSet typé pour les bases de données Oracle et DB2 à partir d'un seul fichier XSD. Arrière-plan: Lorsque je fais glisser une table sur le concepteur de jeu de données Visual Studio, il génère un fichier XSD (par exemple DataSet1.xsd) avec toutes les informations appropriées. Ensuite, VS appelle l'outil intégré (MSDataSetGenerator) pour générer les classes Dataset dans le fichier CS. En quelque sorte (je ne sais pas comment) CS détermine le fournisseur de données et génère des classes de jeu de données qui se réfèrent au fournisseur de données (OracleDataProvider ou IBM.Data.Provider).Comment générer des ensembles de données typés pour plusieurs plates-formes de base de données?

Question: Est-ce que quelqu'un sait comment je peux personnaliser VS pour compiler à la fois pour la génération de code DB2 et Oracle?

Meilleures salutations Oliver

Répondre

1

Salut le problème est pas dans la structure des données (ensemble, tables).
Ce sont les adaptateurs générés automatiquement qui créent une dépendance à la base de données/connexion.

La première façon de contourner cela (un peu) utilise ODBC connexions pour vos cartes.
Ensuite, le connectionstring détermine quelle base de données vous utilisez ..
Cependant .. la syntaxe SQL est toujours un peu différente. Personnellement, je viens de créer un DataSet.xsd avec seulement des datatables (nouveau datatable au lieu de newadaptateur de données). Ensuite, j'écris moi-même mes propres dépôts/adaptateurs. Donc un pour Oracle et un pour DB2.
Ces référentiels/adaptateurs remplissent les données.

Ainsi, vous pouvez partager le modèle entre des bases de données, mais implémenter des adaptateurs spécifiques à la base de données.