LINQ to SQL с использованием динамических таблиц - PullRequest
1 голос
/ 19 июля 2010

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

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

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

Files_1_1, Files_1_2, ... Files_m_n

DataSearch_1_1, DataSearch_1_2, DataSearch_m_n

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

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

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

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

1 Ответ

2 голосов
/ 19 июля 2010

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

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

CREATE PROCEDURE spGetFiles
(
    @TableName
)
AS

EXEC('SELECT * FROM " + @TableName)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...