2010-05-07 8 views
1

Je travaille sur un nouveau projet et espère utiliser LINQ to SQL pour l'accès aux données mais j'ai rencontré le problème suivant.Utilisation de LINQ to SQL avec plusieurs bases de données

je dois avoir mes bases de données d'accès aux applications 3 avec la même mais pas la même structure de table, par exemple

Database1 et base de données 2 a une table appelée tblCustomer avec 2 colonnes CustomerKey et CustomerName

Database2 a une table appelée tblCustomer avec 3 colonnes CustomerKey, CustomerName et CustomerPostCode

Je suis à la recherche d'une solution qui me permettra une requête les trois bases de données s sans avoir besoin de 3 fonctions GetCustomerList comme Database1 et Database2 pourrait utiliser la même fonction que la même structure, avec une fonction override pour la base de données 3 pour ramener le champ supplémentaire .

est-il un moyen que je peux déclarer une base datacontext classe pour gérer la base de données 1 et 2 avec une version héritée de la base de données 3.

Merci à l'avance

Stuart Ferguson

+0

N'oubliez pas d'indiquer votre réponse préférée ;-) – Steven

Répondre

1

Je pense qu'il Il est possible d'avoir trois définitions de tables légèrement différentes (dans trois bases de données), avec un seul objet entité/domaine. Pour que cela fonctionne, vous devrez utiliser des entités POCO (donc pas d'attributs décorés sur les objets L2S) et fournir au DataContext une source de mappage contenant votre définition de base de données. Dans ce cas, vous aurez besoin, trois connexions de base de données distinctes, chacune avec ses propres DataContext avec son propre mapping.

Bien que cela puisse fonctionner, cette solution peut être fragile. Peut-être seriez-vous mieux de laisser ces différents objets client implémenter la même interface ou utiliser un objet (non lié à LINQ to SQL) (proxy) capable de les représenter tous.

Questions connexes