LINQ to Entities 无法识别方法'System.String ToString(Int32)'方法,并且此

本文关键字:方法 Int32 ToString String 识别 Entities to System LINQ | 更新日期: 2023-09-27 18:34:28

我在控制器中使用以下代码

BlueBusDB_Context db = new BlueBusDB_Context();
List<SelectListItem> li =new List<SelectListItem>();
li = db.M_BLUEBUS_STATES.Select(s => new SelectListItem {Text = s.STATE_NAME, Value = Convert.ToString(s.STATE_CODE)}).ToList();
ViewBag.State = li;
return View();

然后在我的创建视图中,我想绑定下拉列表,我正在使用波纹管

@Html.DropDownList("State",ViewBag.State as List<SelectListItem>)

我收到上述错误..

LINQ to Entities 无法识别方法'System.String ToString(Int32)'方法,并且此

Linq to Entities 不支持Convert(请参阅支持的函数(

我将首先创建一个匿名类型,然后转换为 SelectListItems 以更好地分离关注点:

li = db.M_BLUEBUS_STATES
       .Select(s => new { s.STATE_NAME, s.STATE_CODE })
       .AsEnumerable()
       .Select(x => new SelectListItem { Text = x.STATE_NAME, Value = x.STATE_CODE.ToString()})
       .ToList();

您需要使用常规ToString方法而不是Convert类中的方法:

li = db.M_BLUEBUS_STATES.Select(s => new SelectListItem {
     Text = s.STATE_NAME, 
     Value = s.STATE_CODE.ToString()
}).ToList();
相关文章: