LINQ to Entities无法识别方法'System.String ToString()'方法MVC3

Aze*_*eem 2 c# asp.net-mvc-3 visual-studio-2012

Error Description: LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为存储表达式.

执行以下代码时出现错误:

public ActionResult NewBooking()
    {
        var db = new VirtualTicketsDBEntities2();

        IEnumerable<SelectListItem> items = db.Attractions
          .Select(c => new SelectListItem
          {
              Value = c.A_ID.ToString(),
              Text = c.Name
          });
        ViewBag.CategoryID = items;
        return View();
    }
Run Code Online (Sandbox Code Playgroud)

有什么建议摆脱这个错误?

谢谢.

D S*_*ley 9

您可以使用an AsEnumerable()来更改从Linq到实体到Linq到对象的绑定上下文:

IEnumerable<SelectListItem> items = db.Attractions
    .AsEnumerable()
    .Select(c => new SelectListItem
    {
        Value = c.A_ID.ToString(),
        Text = c.Name
    });
Run Code Online (Sandbox Code Playgroud)

  • 只需使用`AsEnumerable()`...`ToList()`是一个代价高昂的步骤,具体取决于有多少项目. (6认同)