我正在尝试使用 lambda 函数选择存储,并将结果转换为 SelectListItem,以便呈现它。然而,它抛出了一个“ 选择子句中的表达式类型不正确”错误:
IEnumerable<SelectListItem> stores =
from store in database.Stores
where store.CompanyID == curCompany.ID
select (s => new SelectListItem { Value = s.ID, Text = s.Name} );
ViewBag.storeSelector = stores;
我做错了什么?
编辑:
此外,在这种情况下如何将 Int 转换为 String:
select (s => new SelectListItem { Value = s.ID.ToString(), Text = s.Name} );
select (s => new SelectListItem { Value = s.ID + "", Text = s.Name} );
编辑2:
计算 Int 到 String 的转换。微软经常忘记包含 int2string 转换函数。下面是每个人实际使用的解决方案,包括完整的语法:
select new SelectListItem { Value = SqlFunctions.StringConvert((double)store.ID), Text = store.Name };
称这种情况为荒谬是轻描淡写的。