我想选择使用lambda函数的商店并将结果转换为SelectListItem,以便我可以呈现它。但是它抛出一个“类型的表达式在SELECT子句中是不正确的”错误:如何在LINQ select语句中使用Lambda
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转换为字符串在这种情况下?以下不工作:
select (s => new SelectListItem { Value = s.ID.ToString(), Text = s.Name});
select (s => new SelectListItem { Value = s.ID + "", Text = s.Name});
编辑2:
找出诠释到String的转换。忘记包含int2string转换函数是微软的典型做法。下面是实际的解决办法大家都在用,与完全工作的语法:
select new SelectListItem { Value = SqlFunctions.StringConvert((double)store.ID), Text = store.Name };
要调用这个情况荒谬是轻描淡写。
能否请你帮我int转换成字符串? LINQ to Entity似乎没有办法将int转换为字符串。 – Bill 2013-03-22 19:14:16
@YongkeBillYu你的意思是像'5.ToString()'? – 2013-03-22 19:17:44
是的,这显然不起作用。 – Bill 2013-03-22 19:19:45