2010-04-17 3 views

Répondre

3

Je pense que si est demandé ais vous pouvez joindre des tables de différentes bases de données, les fournisseurs non différents, ce qui entraîne une entité mis en correspondance avec deux ou plusieurs tables ou vues de différentes bases de données. Si vous y réfléchissez, lorsque vous créez un modèle EDM avec Visual Studio, il vous est demandé de donner une base de données existante. Une fois le modèle créé, il génère une chaîne de connexion EF qui adresse en interne à la base de données sous-jacente. chaîne de connexion.

par exemple: métadonnées = res: // /EFTestModel.csdl|res:// /EFTestModel.ssdl|res:// /EFTestModel.msl;provider=System.Data.SqlClient; chaîne de connexion fournisseur = "Data Source = \;. Initial Catalog = EFTest; Integrated Security = True; MultipleActiveResultSets = True" *

Ainsi, chaque modèle correspond uniquement à une base de données, seule une chaîne de connexion.

EF4 ne prend toujours pas en charge la création d'un modèle conceptuel fonctionnant avec N modèles de stockage. Au moins, ce n'est pas pris en charge avec un fournisseur intégré. Peut-être qu'à l'avenir cela pourrait se faire grâce à un nouveau fournisseur qui combine le support de nombreux stockages (provenant des mêmes fournisseurs ou différents).

Je n'ai pas fait assez de recherche à ce sujet, mais peut-être Windows Server AppFabric (Codename Velocity) pourrait être le pont pour passer à travers cette lacune.

Note: Je l'ai même essayé de modifier manuellement le fichier XML pour l'EDM (edmx) pour insérer un second élément à l'intérieur du < edmx: StorageModels tag > mais il ne correspond pas à l'EDM XML Schema donc VS met en garde contre elle: erreur 10021: élément de schéma dupliqué rencontré.

Rafa Ortega MAP2010

4

En fait, j'ai trouvé un moyen de faire une portée de modèle EF plusieurs bases de données si votre base de données prend en charge les synonymes. Fondamentalement, vous installez Synonymes à Database2 sur Database1, créer des modèles edmx distincts pour chacun, puis fusionner le XML

J'ai posté les étapes exactes pour faire un fichier edmx span plusieurs bases de données here si vous êtes intéressé, avec un script à faire la fusion pour vous chaque fois que quelque chose change.

+0

Avez-vous rencontré des problèmes à long terme? Est-il entièrement compatible? –

+0

Excellent lien. Très ingénieux. –

+1

@LuisFilipe Le projet pour lequel j'ai fait ça a été annulé, donc je n'ai jamais eu l'occasion de tout tester. D'après ce que j'ai eu l'occasion de tester, les seules vraies restrictions étaient les restrictions en place pour les 'Synonymes '. Par exemple, si votre synonyme pointe vers un autre serveur, vous êtes limité aux règles SQL pour l'accès aux serveurs liés. – Rachel

Questions connexes