【发布时间】:2014-04-29 12:01:48
【问题描述】:
MVC5 / EF 6
在我看来
@Html.DropDownList("selectPlayer", (SelectList)ViewBag.Players, "Select Player", new { @class = "form-control" })
在我的控制器中:
if (Convert.ToInt32(mySession.Format) == 4)
{
List<Int32> teamDrawPIDs = new List<Int32>();
List<TeamDraw> teamDrawPlayers;
teamDrawPlayers = entityDB.TeamDraws.Where(t => t.TID == TID).ToList();
foreach (TeamDraw tPlayer in teamDrawPlayers)
{
teamDrawPIDs.Add(tPlayer.PID);
}
// only get players in TeamDraw
ViewBag.Players = new SelectList(entityDB.Players.Where(t => (teamDrawPIDs.IndexOf(t.PID) != -1)).OrderBy(p => p.Last), "PID", "selectListName");
}
else
{
ViewBag.Players = new SelectList(entityDB.Players.OrderBy(p => p.Last), "PID", "selectListName");
}
当mySession.Format 不是 4 时,一切正常。但是,只要它是 4,并且我的 ViewBag.Players 仅由 teamDrawPIDs 中的 ID 创建,我就会收到此错误(在视图页面上,控制器很好):
“LINQ to Entities 无法识别方法 'Int32 IndexOf(Int32)'”
【问题讨论】:
标签: c# .net asp.net-mvc linq entity-framework