2008-12-18 6 views
5

J'ai deux entités, chacune provenant d'une base de données différente et donc de différents fichiers edmx. Il existe cependant une relation inférée entre eux.Linq to Entités/Entity Framework cross edmx "join"

Foo a beaucoup de Bar s par exemple.

Quelle est la manière la plus simple de faire cette jointure dans EntityFramework, avec le moins d'appels de base de données?

Merci.

Répondre

4

Vous pouvez le faire en ajoutant des propriétés de navigation inter-modèles. Cela nécessite d'éditer manuellement l'EDMX. Il y a un exemple, y compris LINQ to Entities, here.

+1

Savez-vous si le SQL généré va dans la base de données croisée ou le gère-t-il comme un appel à la base de données a, puis un appel à la base de données b? – NikolaiDante

1

Vous pouvez le faire en utilisant Views pour représenter les données dans l'autre base de données. Lisez à propos de cross database joins in EF

+0

J'applique ce modèle de vue. Mais quand vous avez besoin d'une nouvelle entité, elle contient des propriétés d'un edmx et d'autres propriétés d'autres edmx. A côté de cela, vous voulez obtenir une nouvelle instance de cette nouvelle entité et faire des opérations CRUD avec ceci. Enfin, vous devez séparer cet ensemble d'entités pour différents modèles. Nous aimons ça. Du côté du projet "Bus", un de mes amis a développé un modèle comme celui-là. Vous pouvez joindre des entités différentes de différents modèles avec notre framework et onSubmit chaque entité trouve son chemin. Mais je suis toujours à la recherche de meilleures pratiques. –