我想選擇使用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