为什么我得到“无法将lambda表达式转换为类型'字符串',因为它不是委托类型”?

时间:2011-08-03 14:25:31

标签: asp.net-mvc-3 linq-to-entities

我有一个名为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 个答案:

答案 0 :(得分:1)

从您的问题中不清楚_entities.LookupTable的类型是什么。如果我们假设某个IQueryable<SomeModel>IEnumerable<SomeModel> SomeModel包含两个属性IdDescription,则必须确保正确转换这两个值字符串,因为Value的{​​{1}}和Text属性是字符串。

您也可以尝试通过调用SelectListItem

来急切地执行查询
.ToString()