2013-11-29 4 views
1

У меня есть DropDownList, и я заполняю его с помощью linq. Ниже приведен пример кода.Выберите несколько столбцов в Linq, используя Список

ddlPortal.DataSource = из строк в db.Portals выбрать новый {rows.Id, rows.PortalName};

Но мне нужно использовать его с переменной List. В чем проблема с кодом ниже?

ddlPortal.DataSource = new List<string>(from rows in db.Portals select new {rows.Id.ToString(), rows.PortalName}); 

Кстати, мне нужно получить две колонки для DataValueField и DataTextField из DropDownList.

ответ

2

Это не List<string>, а список анонимного типа. Используйте var:

var dataSource = db.Portals 
    .Select(rows => new {Id = rows.Id.ToString(),Portal = rows.PortalName}) 
    .ToList(); 

ddlPortal.DataSource = dataSource; 
+0

я могу использовать его так: ddlPortal.DataSource = новый список (из строк в db.Portals выберите rows.Id.ToString()); Он работает для извлечения одного coloumn. Но когда я извлекаю два столбца, это дает мне ошибку. – sekercie

+0

@ user2953746: _What_ ошибка? Вы установили 'DataValueField' в' 'ID '' и 'DataTextField' в' 'Portal''? –

+0

Да, я поставил. ddlPortal.DataSource = новый Список (из строк в db.Порталы выбирают rows.Id.ToString(), rows.PortalName); Он дает эту ошибку для второго: «Строки« name »не существуют в текущем контексте». Я не уверен, как должен синтаксис быть. – sekercie

Смежные вопросы