Получение «Источник данных недопустимого типа» при привязке запроса Linq к Gridview - PullRequest
2 голосов
/ 03 марта 2009

Я пытаюсь привязать gridView к запросу linq to sql, использующему хранимую процедуру. Когда я запускаю страницу, я получаю следующую ошибку:

Источник данных недопустимого типа. Это должен быть либо IListSource, IEnumerable, либо IDataSource.

var db = new TableItemDataContext();
var q = db.sp_SearchForItems("1","2","3","4"); 
GridView1.DataSource = q;
GridView1.DataBind();

Есть идеи?

1 Ответ

3 голосов
/ 03 марта 2009

Используйте метод расширения ToList () для преобразования запроса в список элементов.

GridView1.DataSource = q.ToList();

Это также приведет к выполнению запроса во время преобразования, поэтому вы можете посмотреть, будет ли работать просто приведение к IEnumerable.

Редактировать : чтобы уточнить, основываясь на комментариях. Проблема, как оказалось, связана со строительством SPROC и невозможностью LINQ обнаружить возвращаемое значение. Изменение SPROC в соответствии с Хранимая процедура и LINQ, файл Dmbl не смог интерпретировать набор результатов , позволил LINQ обнаружить схему, после которой SPROC можно было вернуть обратно.

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