Linq to SQL Невозможно привести объект - PullRequest
2 голосов
/ 02 апреля 2012

Я привязываю свою таблицу Product к Grid следующим образом

Контроллер действий

ViewData["Products"] = _repository.GetProducts(true);

Просмотр

@(Html.Telerik().Grid((IEnumerable<Product>)ViewData["Products"])

И все работает отлично.Но мне нужно выбрать только два поля из таблицы, и я попытался использовать код ниже

ViewData["Products"] = _repository.GetProducts(true).Select(p => new
{
Id = p.Id,
Name = p.Name
});

, и теперь я получаю ошибку ниже.Может быть, кто-нибудь может объяснить, как решить эту проблему?

Unable to cast object of type System.Data.Linq.DataQuery to type System.Collections.Generic.IEnumerable

1 Ответ

3 голосов
/ 02 апреля 2012

Может быть, что-то вроде этого:

ViewData["Products"] = _repository.GetProducts(true).Select(p =>  new 
KeyValuePair<int,string>
(
   p.Id,
   p.Name
)).ToList();

А затем измените это:

@(Html.Telerik().Grid((List<KeyValuePair<int,string>>)ViewData["Products"])
...