2010-04-27 4 views
7

Je me demandais si EF4 supportait les relations de bases de données croisées? Par exemple:Relations de base de données croisées EF4

DB1

Author 
    Id 
    Name 

db2

Posts 
    Id 
    Content 
    db1.Author.Id 

Quel idéal que je dois faire pour obtenir cette relation dans mon modèle EF4?

Avez-vous une idée?

Merci

Répondre

3

j'ai commencé récemment un projet qui utilise le cadre de l'entité avec deux bases de données, un Oracle et un SQL Server. Je n'ai trouvé aucune information concernant la prise en charge de bases de données multiples ou de bases de données multiples dans le cadre d'entité.

La plupart des articles de l'équipe-cadre MS Entity datent de quelques années et indiquent que l'inclusion de deux bases de données dans un même modèle n'est pas une fonctionnalité qui sera bientôt incluse. Je serais intéressé à avoir une réponse concrète pour savoir si cela a été inclus en 2010 moi-même, bien que je soupçonne que la réponse est non.

Actuellement le projet contourne cette limitation en ayant un modèle d'entité séparé pour chaque base de données. Cela a résolu le problème pour la majorité des scénarios que nous avons rencontrés jusqu'à présent dans le projet.

Dans les cas où nous avions besoin d'interroger les données des deux bases de données en même temps, nous avons simplement créé une vue dans l'une ou l'autre des bases de données. Puisque nous utilisons Oracle et SQL Server, cette vue utiliserait un serveur lié (SQL) ou un DBLink (Oracle). L'inconvénient des vues dans le framework d'entité est que nous avons dû passer plus de temps que prévu pour faire fonctionner les clés primaires.

Espérons que cela aide.

4

Si votre base de données prend en charge les synonymes, vous pouvez tromper EF pour couvrir plusieurs bases de données. J'ai écrit comment le faire here.Fondamentalement, vous finissez avec un fichier edmx par base de données, et un script qui les fusionne dans un seul fichier EDMX. Les synonymes sont utilisés pour référencer une base de données à partir d'une autre en utilisant le nom réel de la table, donc EF ne lance pas un ajustement lorsque vous essayez d'accéder à database2.table à partir de database1. Vous devez toujours configurer manuellement les liens entre les deux bases de données dans le modèle EF, mais une fois l'installation effectuée, elles resteront même si vous réexécutez le script de fusion.

scripts pour configurer Synonymes et de fusionner les fichiers EDMX sont affichés dans le lien

+0

Je vous suggère de voter ici ma suggestion de uservoice: http://visualstudio.uservoice.com/forums/121579-visual-studio/ Suggestions/2730532-make-entity-framework-concepteur-support-synonymes Si nous pouvons obtenir le support de synonyme dans le concepteur, alors tout est facile-peasy. En outre, encouragez toute autre personne que vous pourriez trouver qui est intéressé par le soutien inter-base de données à voter pour cela. –

Questions connexes