をDataContextの廃棄時にエラーが私のコードです:「DataContextの処分後にアクセス」ここ
public ActionResult MainMenu(int id)
{
using (WebDataContext context = new WebDataContext())
{
//var dataLoadOptions = new System.Data.Linq.DataLoadOptions();
//dataLoadOptions.LoadWith<MenuCache>(x => x.Menu);
//context.LoadOptions = dataLoadOptions;
var 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;
}
}
return View(menu.ToList());
}
}
私はそれを修正する方法でオンラインいくつかのオプションを発見しました。 1つはyield return View(menu));
を行うことでしたが、それは私にエラーを与えたActionResult is not an iterator
。関数内のコメント付きコードは、私が見つけた別のオプションでしたが、それもうまくいきませんでした。何か案は?どうもありがとう。
私はあなたの問題は、あなたがエンティティであり、データコンテキストを破棄する前にロードされていない "MenuCache"のプロパティにアクセスしているということです。 Viewでアクセスされている "MenuCache"のプロパティで、DataLoadOptionsを使用してそれらを読み込むことができるエンティティを確認します。 – epignosisx