EntityFramework 中的 SaveChanges() 未保存更改。显示 "The function evaluation requires all threads to run"
SaveChanges() in EntityFramework not saving changes. Showing "The function evaluation requires all threads to run"
以下是我的操作代码:
[HttpPost]
public ActionResult AddCategory(Models.CategoryViewModel category)
{
try
{
if (ModelState.IsValid)
{
_context.Categories.Add(new Models.Category() { Name = category._Name });
_context.SaveChanges();
}
var categories = _context.Categories.ToList();
Models.CategoryViewModel categoryViewModel = new Models.CategoryViewModel()
{
_Category = categories.ToList(),
};
return View(categoryViewModel);
}
catch(Exception)
{
throw;
}
}
我可以成功获取数据,但 SaveChanges
无法正常工作。我在 catch 块中没有看到异常抛出,并且在调试期间出现此错误:
我在 _context.Categories.Sql
之前单击了线程图标,但它只显示了一个 SELECT
查询。
最终在这个答案的帮助下: 我能够解决这个问题。虽然,我仍然无法理解这个问题。我正在使用一个通用控制器来获取一个 ApplicationDbContext
对象。我在基本控制器中使用这样的 属性 class:
protected ApplicationDbContext _context { get { return new ApplicationDbContext(); } }
我在其他控制器中继承了这个 class。我正确地获取了数据,但无法保存。
当我在子 classes 中声明 ApplicationDbContext
并使用他们自己的 _context
对象来保存数据时,它起作用了。
如果有人能告诉我为什么会这样,那么这将对这个问题的未来访问者有很大帮助。
我认为如果您将 protected 更改为 ApplicationDbcontext 的 public 它可以工作,
请告诉我是否正确,谢谢。
以下是我的操作代码:
[HttpPost]
public ActionResult AddCategory(Models.CategoryViewModel category)
{
try
{
if (ModelState.IsValid)
{
_context.Categories.Add(new Models.Category() { Name = category._Name });
_context.SaveChanges();
}
var categories = _context.Categories.ToList();
Models.CategoryViewModel categoryViewModel = new Models.CategoryViewModel()
{
_Category = categories.ToList(),
};
return View(categoryViewModel);
}
catch(Exception)
{
throw;
}
}
我可以成功获取数据,但 SaveChanges
无法正常工作。我在 catch 块中没有看到异常抛出,并且在调试期间出现此错误:
我在 _context.Categories.Sql
之前单击了线程图标,但它只显示了一个 SELECT
查询。
最终在这个答案的帮助下: 我能够解决这个问题。虽然,我仍然无法理解这个问题。我正在使用一个通用控制器来获取一个 ApplicationDbContext
对象。我在基本控制器中使用这样的 属性 class:
protected ApplicationDbContext _context { get { return new ApplicationDbContext(); } }
我在其他控制器中继承了这个 class。我正确地获取了数据,但无法保存。
当我在子 classes 中声明 ApplicationDbContext
并使用他们自己的 _context
对象来保存数据时,它起作用了。
如果有人能告诉我为什么会这样,那么这将对这个问题的未来访问者有很大帮助。
我认为如果您将 protected 更改为 ApplicationDbcontext 的 public 它可以工作, 请告诉我是否正确,谢谢。