Ceci est possible dans LINQ to SQL si vous créez un (simple) typée DataContext qui contient les classes de table pour les objets dans les deux bases de données. Ce concepteur ne vous aidera pas ici, vous devez donc créer manuellement certaines classes de tables. En d'autres termes, utilisez le concepteur VS pour créer un DataContext typé pour votre base de données primaire, puis ajouter manuellement des classes pour les tables de l'autre base de données que vous souhaitez accéder:
[Table (Name = "OtherDatabase.dbo.lookup")]
public class Lookup
{
...
}
Edit: Dans LINQPad Premium Edition , vous pouvez maintenant faire des requêtes inter-base de données avec SQL Server - de deux façons. La plus simple est l'approche glisser-déposer: maintenez la touche Ctrl
enfoncée tout en faisant glisser des bases de données supplémentaires de l'Explorateur de schéma vers l'éditeur de requête. Pour accéder à ces bases de données supplémentaires dans vos requêtes, utilisez la notation database.table, par exemple, Northwind.Regions.Take (100). Les bases de données que vous interrogez doivent résider sur le même serveur.
La deuxième approche consiste à répertorier les bases de données supplémentaires que vous souhaitez interroger dans la boîte de dialogue des propriétés de connexion. Cette boîte de dialogue vous permet également de choisir des bases de données à partir de serveurs liés. Voici comment procéder:
- Ajoutez une nouvelle connexion LINQ to SQL.
- Choisissez Spécifier une base de données nouvelle ou existante et choisissez la base de données primaire que vous souhaitez interroger.
- Cochez la case
Include Additional Databases
et choisissez la ou les bases de données supplémentaires que vous souhaitez inclure. Vous pouvez également choisir des bases de données à partir de serveurs liés dans cette boîte de dialogue.
Vous pouvez maintenant effectuer des requêtes inter-bases de données. Ceux-ci sont correctement optimisés dans la mesure où les jointures auront lieu sur le serveur plutôt que sur le client.
Je ne comprends pas. Les bases de données sont sur le même serveur. –
Oh mon diable! Oui, ça marche aussi! – Baaju
Ceci est la syntaxe SQL, cependant, comment peut-il être fait dans Linq est la question ... –