вызов хранимой процедуры из linq - PullRequest
0 голосов
/ 09 мая 2011

Эй, ребята, у меня есть хранимая процедура, известная как sp_sitesearch, которая возвращает результат поиска по сайту, теперь я хочу сделать это, я хочу вызвать этот sp для gridview с использованием LINQ, потому что один из моих друзей предположил, что производительность linq быстрее, чем DataTable или DataSet. поэтому я хочу попробовать это, поэтому я создал dbml и добавил свой SP внутри этого, а внутри .cs я написал ниже код.
SiteSearchDataContext siteSearch = new SiteSearchDataContext(); gridArticle.DataSource = siteSearch.sp_SiteSearch(1, keyword); gridArticle.DataBind();

здесь он выдает ошибку, говоря, что он должен вернуть IEnumerable или IDataSource, я был шокирован, когда обнаружил, что он возвращает int ... но я не знаю, как, поскольку мой sp ничего не возвращает, он просто возвращает набор результатов так что кто-нибудь может предложить мне, как я должен использовать это, чтобы связать gridview.

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Похоже, вы не отобразили в своей хранимой процедуре тип возврата в вашей модели данных сущности.Если вы вернетесь к своей модели данных и отредактируете свой «Импорт функций», то должен появиться раздел окна «Возвращает коллекцию», который вы можете использовать для определения того, что возвращает ваш сохраненный процесс.Надеемся, что то, что он возвращает, может быть сопоставлено непосредственно с типом сущности в вашей модели данных, так как это позволит вам просто выбрать сущность из выпадающего списка.Если ваши результаты возвращаются способом, который не соответствует чисто существующей сущности, обратитесь к Как: сопоставить импорт функции со сложным типом (инструменты модели данных сущности) в MSDN.

0 голосов
/ 09 мая 2011

Нельзя связать IQueryable с источником данных.Вам нужно

gridArticle.DataSource = siteSearch.sp_SiteSearch(1, keyword).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...