super_user Ответов: 2

Процедура хранения вызовов в LINQ


Я пытаюсь вызвать storerprocedure в LINQ, но это показывает ошибку

Что я уже пробовал:

[WebMethod]
общественности статической строки search_data(fromdate типа datetime, datetime в последней, строки области)
{
пробовать
{
строковый результат = "";

Ц1 ц = Ц1 новый();
List & lt;ts1> dq = ts.griddataresult(fromdate, todate, region).Список();

DataTable dt = новый DataTable();

ДТ.Столбцы.Add ("ID", typeof(int));
ДТ.Столбцы.Add ("Owner", typeof (string));


foreach (var c в dq)
{
ДТ.Строк.Добавления(возр.ИД, Си.владелец);
}

результат = DataSetToJSON(dt);
возвращаемый результат;
}
catch (исключение)
{
выбросить новое исключение();
}
}

публичная статическая строка DataSetToJSON(DataTable dt)
{
Словарь< string, & gt; dict = новый словарь & lt;string,>();
object[] arr = новый объект[dt. Rows.Количество + 1];

for (int i = 0; i <= dt.Rows.Count-1; i++)
{
модуль arr[я] = ДТ.Строки[я].ItemArray;
}

dict. Add("ответ", arr);

Класс javascriptserializer формате JSON = новый класс javascriptserializer();
верните json.Сериализация (дикт);
}

Suvendu Shekhar Giri

Это потому, что "dq" - это не коллекция, и чтобы использовать foreach, вам нужна коллекция.

super_user

проверьте обновление @Suvendu Shekhar Giri

2 Ответов

Рейтинг:
2

F-ES Sitecore

Это одна из причин, по которой вам следует избегать использования "var" до тех пор, пока вы не приобретете больше опыта работы с .net. EF считает, что ваш SP - это то, что известно как скалярная процедура, то есть он возвращает только одно значение, а не результирующий набор\таблицу. Таким образом, возвращаемое значение-int, поэтому ваша переменная dq-int, и вы можете зацикливаться только на переменных, которые являются коллекциями. Посмотрите, как SP создается в EF, возможно, удалите его из модели EF и снова добавьте.


super_user

я также добавляю это..

так что же мне использовать вместо var

super_user

мое расширение модели -. edmx

F-ES Sitecore

Используйте правильный тип. "var" -это просто замена фактического типа, но это означает, что, глядя на ваш код, вы не знаете, что это за тип чего-либо, и когда вы публикуете свой код в интернете, люди, смотрящие на ваш код, тоже не знают.

super_user

тип возвращаемых данных?

super_user

@F-ES Sitecore проверьте это изображение, я установил тип возврата int .. http://i.imgur.com/TXonGOp.png

F-ES Sitecore

Тогда это ваша проблема, если SP не возвращает int, вам нужно настроить его таким образом, чтобы он возвращал правильную вещь. Не уверен, что он возвращает, но вы можете попробовать кнопку" Получить информацию о столбце", чтобы увидеть, работает ли она, или выбрать соответствующий тип из выпадающего списка сущностей, если подходящая сущность существует.

super_user

мой sp возвращает 24 строки