2010-07-19 6 views
1

Je développe l'application VS 2008, .NET 3.5 et j'essaie d'utiliser LINQ To SQL. Je fais glisser les tables & sur le concepteur pour générer le fichier .dbml.LINQ to SQL utilisant des tables dynamiques

Le problème que j'ai est que j'ai quelques tables dynamiques pour l'indexation de recherche.

Je sais que la structure de la table, seule l'application crée de nouvelles tables comme ceci:

Files_1_1, Files_1_2, ... Files_m_n 

DataSearch_1_1, DataSearch_1_2, DataSearch_m_n 

Dans ce cas, m et n sont des entiers au nom de la table.

Je définis de manière statique quelles colonnes sont disponibles mais pas le nom de la table, j'ai donc besoin d'un moyen de le faire à la volée. Bien sûr, cela devrait également inclure des tables associées.

Je n'ai pas été capable d'avoir une bonne idée à ce sujet. Je serais également satisfait de simplement pouvoir générer la classe LINQ To SQL pour ces tables.

Est-ce que quelqu'un a trouvé une solution à ce problème? J'ai regardé en vain des articles de blog et des forums pour les derniers jours. Tout exemple de code est génial pour moi.

Répondre

2

Le lien vers sql fonctionne avec des procédures stockées et le concepteur crée automatiquement une classe pour le type de retour. Vous pouvez utiliser sql dynamique dans vos classes sp et return linq to sql.

Vous pouvez créer une procédure stockée comme ci-dessous:

CREATE PROCEDURE spGetFiles 
(
    @TableName 
) 
AS 

EXEC('SELECT * FROM " + @TableName) 

ensuite dans le concepteur Visual Studio O/R, sélectionnez la SP depuis l'explorateur de serveur et faites-le glisser dans la fenêtre du concepteur de la même manière que vous ajouter des tables. Une méthode avec le même nom que votre SP sera créée sur votre classe de contexte de données et une classe appelée quelque chose comme spGetFilesReturnType sera créée (j'ai peut-être obtenu ce nom légèrement faux mais vous avez l'idée). Vous appelez simplement la méthode datacontext avec le nom de la table en tant que paramètre de chaîne et les collections d'objets spGetFilesReturnType seront renvoyées.

+0

Je ne comprends pas bien, un exemple de code de SP, s'il vous plaît? Le SP est créé automatiquement par Linq ?? – Kiquenet

+0

J'ai mis à jour ma réponse avec un exemple sp et des instructions plus détaillées. –