2009-03-26 7 views
0

Est-il possible de créer une 'entité' qui sera une abstraction d'une relation entre des tables qui résident dans deux tables différentes, dans deux bases de données différentes, sur deux machines différentes, et même éventuellement en utilisant deux dbms différents? Par exemple, si j'ai une base de données SQL Server sur une machine qui stocke tous mes clients, et que j'ai une base de données Oracle sur une autre machine qui stocke toutes mes commandes, est-il possible d'envelopper dans une entité puis utiliser l'entité dans une expression LINQ comme s'ils étaient ensemble?ADO.NET Entity Framework - LINQ à plusieurs dbms

Merci!

Répondre

1

Wow, ce serait la solution n-tier ultime!

Pas aussi loin que je sache. Sauf si vous créez une vue et liez EF à la vue, mais alors il serait en lecture seule (évidemment)?

0

Vous pouvez utiliser plusieurs fichiers dbml avec différents espaces de noms pour chaque fichier (comme MyProject.Data.Customer, Myproject.Data.Orders, etc.).

Je pense que c'est de cette manière que vous pouvez utiliser plusieurs bases de données résidant sur des machines différentes. L'utilisation de différents espaces de noms pour différents dbs fournit une très bonne isolation, cela vous aidera à garder chaque couche db séparée et vous pouvez avoir une personne/équipe distincte travaillant sur chaque couche indépendamment.

Vous pouvez placer tous ces éléments dans des espaces/espaces de noms uniques, mais cela rendra les choses plus compliquées et difficiles à maintenir.

Questions connexes