2009-05-13 5 views
0

У меня есть хранимая процедура, вызванная через LINQ to SQL, запомненная процедура вызывает другой хранимый proc внутри нее и имеет SELECT для вывода результата. результат SELECT не возвращается к моему LINQ to SQL, я могу получить только значение результата int. Как я могу получить результат выбора сохраненного proc с внутри хранимой процедурыLinq to SQL Select in Stored Proc

ответ

1

Дизайнер LINQ не может точно проанализировать вашу хранимую процедуру для определения схемы. Одна работа заключается в том, чтобы временно изменить сохраненный proc на простой выбор правильной схемы. Переделайте его в дизайнере. Затем измените сохраненный proc обратно на оригинал. Таким образом, разработчик может определить схему и правильно отобразить ее в правильной сущности.

+0

избранного результата я после того, как это скалярная ИНТ результат, но до сих пор не LINQ может увидеть его – monkeylee

+0

изменить зр просто выберите 1; , затем проанализируйте его, а затем измените его. это сработает. – TheSoftwareJedi

+0

Мне пришлось изменить его на запрос, который возвратит несколько результатов для linq, чтобы выбрать тип результата. Спасибо, парни – monkeylee

0

Когда вы вызываете хранимую процедуру из Sql Server Management Studio, она возвращает несколько наборов строк?

Если это так, использование хранимой процедуры из LINQ не является тривиальным, см. this article.

Чтение нескольких результатов легко с помощью метода NextResult из DataReader:

var com = yourConnection.CreateCommand(); 
com.CommandText = "execute dbo.YourSp 'par1'"; 
var read = com.ExecuteReader(); 
// Move to second result set and read it 
read.NextResult(); 
while (read.Read()) { 
    Console.WriteLine(read["MyField"]); 
}