ajax応答を取得するときに500の内部エラーが発生しました。
コントローラのajax関数は次のとおりです。
[GridAction]
public ActionResult SelectItemGridAjax(int OrderID)
{
return View(new GridModel(ordersRepository.GetOrderItemsTK(OrderID).ToList()));
}
これは、リポジトリが送信するものです。
public IEnumerable<ItemsInOrder> GetOrderItemsTK(int OrderID)
{
using (var context = new techrundb())
{
var result = (from p in context.ItemsInOrders.Include("Order").Where(i=>i.OrderID == OrderID) select p).ToList();
return result;
}
}
これはサーバーの応答です:
ObjectContextインスタンスは破棄され、接続を必要とする操作には使用できなくなりました。
OrderとItemsInOrderの間には「循環参照」があります。しかし、Include( "Order")を削除すると、グリッドが(Order参照フィールドの)ItemsInOrderオブジェクトを列挙しているときに例外が発生します。
このエラーは循環参照に関連していますか?私は何をすべきか ?新しいオブジェクトを作成し、グリッドに出入りする途中で手動で置き換えますか?