Не могу быть уверен, но, вероятно, это как-то связано с return View(menu.ToList())
, так как я считаю, что фактический результат (представление) не выполняется до позднего времени в строке канала MVC, поэтому ToList()
isn 't выполняется до тех пор, пока ваш WebDataContext
не будет уничтожен.Могу поспорить, что это решит проблему:
public ActionResult MainMenu(int id)
{
IENumerable<MenuCache> menu;
using (WebDataContext context = new WebDataContext())
{
menu = context.MenuCaches
.AsEnumerable()
.Where(x => x.ID == id
&& (x.Local == true || x.National == true));
foreach (var item in menu)
{
if (item.Parent.Parent != null && item.Parent.ParentID == 0)
{
menu = item.Children;
}
}
menu = menu.ToList();
}
return View(menu);
}