2010-07-19 2 views
1

Я разрабатываю приложение VS 2008, .NET 3.5, и я пытаюсь использовать LINQ To SQL. Я перетаскиваю & таблицы drop на конструкторе для создания файла .dbml.LINQ to SQL с использованием динамических таблиц

Проблема у меня есть, что у меня есть некоторые динамические таблицы для индексации поиска.

Я знаю структуру таблицы, только приложение создает новые таблицы, как это:

Files_1_1, Files_1_2, ... Files_m_n 

DataSearch_1_1, DataSearch_1_2, DataSearch_m_n 

В этом случае m и n целые числа в имени таблицы.

Я статически определяю, какие столбцы доступны, но не имя таблицы, поэтому мне нужен способ сделать это на лету. Конечно, это также должно включать связанные таблицы.

Я не смог получить хорошее представление об этом. Я также был бы доволен тем, что мог бы генерировать LINQ To SQL класс для этих таблиц.

У кого-нибудь есть решение этой проблемы? Я просматривал сообщения в блогах и форумы в течение последних дней впустую. Любой образец кода отлично подходит для меня.

ответ

2

Ссылка на sql работает с хранимыми процедурами, и разработчик автоматически создаст класс для возвращаемого типа. Вы можете использовать динамический sql в своих sp и возвращать linq в классы sql.

Вы можете создать хранимую процедуру, как показано ниже:

CREATE PROCEDURE spGetFiles 
(
    @TableName 
) 
AS 

EXEC('SELECT * FROM " + @TableName) 

Затем в Visual Studio O/R дизайнер выберите SP из проводника сервера и перетащить его в окно конструктора таким же образом, что вам добавьте таблицы. Метод с тем же именем, что и ваш SP, будет создан в вашем контексте контекста данных, и будет создан класс, называемый spGetFilesReturnType (возможно, это неправильное имя было неправильным, но вы поняли эту идею). Затем вы вызываете метод datacontext с именем таблицы в качестве строкового параметра, и будут возвращены коллекции объектов spGetFilesReturnType.

+0

Я не очень хорошо понимаю, любой образец кода SP, пожалуйста?. SP создается автоматически Linq ?? – Kiquenet

+0

Я обновил свой ответ примером sp и более подробными инструкциями. –

Смежные вопросы