我正在尝试使用 lambda 函数选择商店并将结果转换为 SelectListItem 以便我可以呈现它。但是它会抛出“ Select Clause 中的表达式类型不正确”错误:
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 转换函数是 Microsoft 的典型做法。这是每个人都在使用的实际解决方法,具有完全有效的语法:
select new SelectListItem { Value = SqlFunctions.StringConvert((double)store.ID), Text = store.Name };
将这种情况称为荒谬是轻描淡写的。