我的控制器代碼是: -由於已處理DbContext,操作無法完成。要返回選擇的表值
public JsonResult FetchTblData()
{
string MyTableName = Convert.ToString(Request.Form["TblName"]);
using (EBContext db = new EBContext())
{
try
{
Type tableType = typeof(CourseDesc);
switch (MyTableName)
{
case "CourseTbl":
tableType = typeof(CourseTbl);
break;
case "CourseDescTbl":
tableType = typeof(CourseDesc);
break;
}
var result = db.Set(tableType);
return new JsonResult { Data = result, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
catch (Exception ex)
{
string innerMessage = (ex.InnerException != null) ? ex.InnerException.Message : "";
return new JsonResult { Data = "Not Found", JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
}
}
我看着在這個問題還有: - [操作無法完成,因爲的DbContext已配置] [1]
[1]:The operation cannot be completed because the DbContext has been disposed等,但方法是完全不同的。我想在我的jsonresult中有我的表值。但我無法通過變量'result'來訪問它。請原諒我的英語。
你回來'result'變量自IEnumerable繼承似乎並沒有持有價值,而是準備操作,它不再可以通過它指向的'DbContext'來執行,因爲'DbContext'在調用'return'後就會被處理掉,這發生在.NET試圖將'result'串行化成JSON之前。改變你的行'var result = db.Set(tableType);''var result = db.Set(tableType).ToListAsync();' –
給我錯誤: - ObjectContext實例已經被處置,不能再使用用於需要連接的操作。 – Deepak
嘗試'result = db.Set();' –