2008-10-14 7 views
1

Nous utilisons Linq To SQL avec notre propre logique de contexte de données qui exécute la requête one linq sur plusieurs bases de données. Lorsque nous obtenons les résultats, nous avons besoin de la base de données pour chacune des lignes. Donc ...Linq To SQL - comment avoir une propriété non de table mais de DB

Je veux avoir une propriété sur ma classe qui retournera le nom de la base de données (SQL Server, donc DB_NAME()). Comment puis-je faire cela dans Linq To Sql?

REMARQUE: Nous avons des centaines de bases de données et ne souhaitons pas afficher de vues dans chaque base de données. Le retour devrait revenir comme une autre propriété sur chaque ligne du jeu de résultats de retour.

+0

peut vous fournir plus de détails sur la façon dont vous vous interrogez sur plusieurs bases de données? Est-ce fait dans l'application, à partir du serveur de base de données via une procédure stockée, ou comment? –

Répondre

2

Dans le fichier XML DBML, vous pouvez définir l'attribut d'expression d'un élément de la colonne à ceci:

<Column Name="Table1.DBName" 
     DbType="nvarahcar(128)" 
     Type="System.String" 
     Expression="DB_NAME()" /> 
0

Comment itérez-vous les différentes bases de données? Pourriez-vous simplement inclure des informations du contexte dans la requête? Par exemple:

Dim results = _ 
    From x In myContext.MyTables _ 
    Select x, info = myContext.Connection.ConnectionString 
Questions connexes