Asp.net mvc 3 为什么我会得到;无法将lambda表达式转换为类型';字符串';因为它不是委托类型;?

Asp.net mvc 3 为什么我会得到;无法将lambda表达式转换为类型';字符串';因为它不是委托类型;?,asp.net-mvc-3,linq-to-entities,Asp.net Mvc 3,Linq To Entities,我有一个名为LookupTable的简单表,其中有两个字段:Id(int)和Description(nvarchar),我想用它们来填充下拉列表 以下代码给出了错误信息: IEnumerable<SelectListItem> items = _entities.LookupTable.Select(t=> new SelectListItem {Value = t.Id,

我有一个名为LookupTable的简单表,其中有两个字段:Id(int)和Description(nvarchar),我想用它们来填充下拉列表

以下代码给出了错误信息:

IEnumerable<SelectListItem> items = 
  _entities.LookupTable.Select(t=> new SelectListItem {Value = t.Id, 
                                                       Text = t.Description } );
IEnumerable项=
_entities.LookupTable.Select(t=>newselectListItem{Value=t.Id,
Text=t.Description});
我有一个使用系统;语句,如果尝试t.Id.ToString(),则会出现运行时错误


我一定错过了一些简单的东西,对吧?

从你的问题中不清楚
\u实体的类型。LookupTable
。如果我们假设它是一些
IQueryable
IEnumerable
,其中
SomeModel
包含两个属性
Id
Description
,您必须确保正确地将这两个值转换为字符串,因为
SelectListItem
值和
文本
属性都是字符串

您还可以通过调用
.ToString()
,尝试急切地执行查询:

var项目=\u实体
.好看
托利斯先生()
.选择(t=>new SelectListItem
{

Value=t.Id.ToString(),//您的问题不清楚
\u实体的类型。LookupTable
。如果我们假设它是一些
IQueryable
IEnumerable
,其中
SomeModel
包含两个属性
Id
Description
,您必须确保将这两个值正确地转换为字符串作为
选择列表项的
文本
属性都是字符串

您还可以通过调用
.ToString()
,尝试急切地执行查询:

var项目=\u实体
.好看
托利斯先生()
.选择(t=>new SelectListItem
{
Value=t.Id.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 
    });