Подводя итог некоторым другим ответам, а также добавляя немного дополнительной информации:
Подключитесь к источнику данных с помощью драйвера Default (LINQ to SQL) . Убедитесь, что установлен флажок Включить хранимые процедуры и функции .
Хранимые процедуры и функции теперь доступны в виде функций .NET (например, C #) в запросах с использованием соединения. Параметры, требуемые функцией, отражают параметры, требуемые хранимой процедурой или функцией базы данных.
Значением, возвращаемым функцией, является ReturnDataSet
, тип LINQPad, производный от DataSet
. К сожалению, выполнить запросы LINQ для наборов данных не так просто, но LINQPad предоставляет метод расширения AsDynamic()
, который будет принимать первую таблицу возвращенного набора данных (обычно это только одна таблица) и преобразовывать строки в IEnumerable<Object>
, где объекты в коллекции являются динамическими, что позволяет получить доступ к значениям столбца в качестве свойств. Например. если ваша хранимая процедура возвращает столбцы Id
и Name
, вы можете использовать LINQ:
SomeStoredProc().AsDynamic().Where(row => row.Id == 123 && row.Name == "Foo")
К сожалению, у вас не будет intellisense, потому что объекты строк являются динамическими.