Новое в EF-каркасе, и я просто пытаюсь понять. Я просто пытаюсь использовать пользовательский ввод, чтобы вытащить запись в db.«Операция не может быть завершена, потому что DbContext был удален»
public class DataController : Controller
{
// GET: /Data/
// /Data/GetTest
// Test endpoint
// Works
[HttpGet]
public JsonResult GetTest()
{
test t = null;
using (Database1Entities context1 = new Database1Entities())
{
t = context1.tests.OrderByDescending(a => a.Id).Take(1).FirstOrDefault();
}
JsonResult ret = new JsonResult { Data = t, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
return ret;
}
//This is the problem controller
public JsonResult GetDataWithInput(test t) //test is a table with Id
{ //and test1 fields
using (Database1Entities context2 = new Database1Entities()) {
var r = context2.tests.Where(a => a.test1.Equals(t.test1) && a.Id.Equals(t.Id));
JsonResult ret = new JsonResult { Data = r, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
return ret;
}
}
}
The/Data/GetTest отлично работает. Это была первая контрольная точка тестирования и проблем там не было. Однако, когда я добавил пользовательский ввод, чтобы получить правильную запись из таблицы тестов в/Data/GetDataWithInput, я был поражен ошибкой, которую удалил DbContext.
Попробуйте с помощью 'Data = r.ToList()' – haim770
Это сработало, спасибо @ haim770 – pbordeaux