使用DbContext和带模型返回视图的问题
本文关键字:视图 问题 返回 模型 DbContext 使用 | 更新日期: 2023-09-27 18:16:52
我需要从数据库中获取一些东西,并返回模型,如果ModelState
无效,但我似乎无法使用using
,我想。
下面的代码可以运行:
[HttpPost]
public ActionResult EditProduct(ProductVM productVM, HttpPostedFileBase file)
{
// Check model state
if (!ModelState.IsValid)
{
Db db = new Db();
productVM.Categories = new SelectList(db.Categories, "Id", "Name");
return View(productVM);
}
return View(productVM);
}
这段代码抛出以下错误:
The operation cannot be completed because the DbContext has been disposed.
[HttpPost]
public ActionResult EditProduct(ProductVM productVM, HttpPostedFileBase file)
{
// Check model state
if (!ModelState.IsValid)
{
using (Db db = new Db())
{
//Db db = new Db();
productVM.Categories = new SelectList(db.Categories, "Id", "Name");
}
return View(productVM);
}
return View(productVM);
}
我能以某种方式使用using
,仍然有它的工作?
正如@Stephen Muecke所说,您必须使用ToList()
或AsEnumerable()
实现集合。如果不枚举集合,则它不会立即运行。这就是为什么你会得到那个错误。所以应该是;
productVM.Categories = new SelectList(db.Categories.ToList(), "Id", "Name");
希望帮助,