2012-04-02 3 views
2

Я связывание моего стола продукта к сетке, как этотLinq к SQL Невозможно бросить объект

Action Controller

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 

ответ

3

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

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"]) 
Смежные вопросы