Использование LINQ to SQL для чтения хранимых процедур - PullRequest
1 голос
/ 21 апреля 2009

Кто-нибудь знает способ доступа к тексту хранимых процедур с помощью LINQ to SQL? Я хотел бы проверить набор хранимых процедур, чтобы убедиться, что все они содержат некоторый общий код.

Такое чувство, что должен быть хороший способ открыть их через контекст данных LINQ to SQL, но я не знаю как. Есть предложения?

Ответы [ 3 ]

5 голосов
/ 21 апреля 2009

Вы можете попробовать что-то вроде этого:

string results = db.ExecuteQuery<string>
(@"EXEC sp_helptext '{0}'", procedure_name);

или используйте этот запрос в себе LINQ:

SELECT text
FROM syscomments
WHERE id = (SELECT id FROM sysobjects WHERE name = 'procedure_name')
ORDER BY colid 
3 голосов
/ 21 апреля 2009

Я полагаю, вы используете SQL Server.

Чтобы получить текст хранимой процедуры, вам необходимо выполнить системную хранимую процедуру sp_helptext .

Чтобы узнать, как выполнить хранимую процедуру из Linq, вы можете увидеть this .

2 голосов
/ 21 апреля 2009

Я не уверен, что это задача, идеально подходящая для LINQ-to-SQL - но вы, вероятно, можете получить текст из таких вещей, как syscomments - однако это может быть запутано. Лично я бы снова запустил тесты моего хранилища кода вместо базы данных.

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