Почему я получаю сообщение «Невозможно преобразовать лямбда-выражение в тип« строка », потому что это не тип делегата»? - PullRequest
1 голос
/ 03 августа 2011

У меня есть простая таблица под названием LookupTable с двумя полями: Id (int) и Description (nvarchar), которые я хочу использовать для заполнения раскрывающегося списка.

Следующий код дает мне ошибку:

IEnumerable<SelectListItem> items = 
  _entities.LookupTable.Select(t=> new SelectListItem {Value = t.Id, 
                                                       Text = t.Description } );

У меня есть использование System.Linq; оператор уже, и я получаю ошибку времени выполнения, если я пытаюсь t.Id.ToString ().

Я, должно быть, упускаю что-то простое, верно?

1 Ответ

1 голос
/ 03 августа 2011

Из вашего вопроса не ясно, какой тип _entities.LookupTable.Если мы предположим, что это какое-то значение IQueryable<SomeModel> или IEnumerable<SomeModel>, где SomeModel содержит два свойства Id и Description, необходимо убедиться, что вы правильно преобразовали эти два значения в строку как Value и Text свойства SelectListItem являются строками.

Вы также можете попытаться быстро выполнить запрос, вызвав .ToString():

var items = _entities
    .LookupTable
    .ToList()
    .Select(t => new SelectListItem 
    {
         Value = t.Id.ToString(), // <-- notice that you might need a ToString if the Id property is integer 
         Text = t.Description 
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...