我有一个表,我需要从中提取数据,并希望丢弃数据来自的两列之一。在我的数据库中,我有“ObjectID (PK)”和“ObjectName”。
我希望使用此数据填充 ASP.NET MVC 项目中的 SelectList,因此我的代码中有一个 IQueryable 对象,如下所示:
public IQueryable<objectRef> FindSomeObject()
{
return from myObj in db.TableName
orderby myObj.colName
select myObj;
}
如果我尝试更改最后一行以仅提取单列数据,例如:
select new { myObject.colName };
我收到一条警告,提示我正在尝试将匿名类型隐式转换为当前类型。
令人烦恼的是,此查询在 ViewData[""]
中用于设置 SelectList
,它可以很好地显示下拉列表,但会将 PK 值写入新表格而不是文本。
我假设我对此知之甚少,以至于我什至无法向 Google 提出正确的问题,因为数小时的 RTFM 没有显示任何有用的信息。任何帮助将不胜感激。
您需要更改方法的返回类型 - 如果您只想选择一列,只需声明您将返回该列的某些内容即可。例如:
public IQueryable<string> FindSomeObject()
{
return from myObj in db.TableName
orderby myObj.colName
select myObj.colName;
}
这基本上是说它是一个返回字符串序列的查询 - 我想这就是您想要的。
我是一名优秀的程序员,十分优秀!