entity-framework-core - EF Core SaveChangesAsync 杀死任务 - 没有错误
问题描述
我有一个 Job Scheduler (QUARTZ) - 它运行 Tasks,但我遇到了一个为我映射产品的问题。
基本上,foreach 循环中有 106 个产品供它检查,因为它会创建一个不存在的产品,将实体添加到 DB 并调用 await _db.SaveChangesAsync(),它会退出线程,不会陷入任何捕获,只是完全停止循环和任务。调试器或日志没有输出。我不知道为什么它突然停止了。如果我删除异步并简单地调用 SaveChanges() 它不会停止并且也会执行它应该做的事情..
注意:在保存更改、选择等之前,有以前的数据库检查调用异步,这些似乎都没有任何问题。我检查了数据,实体模型没有问题。如果我自己运行该代码部分,它确实会存储到数据库中。更奇怪的是,这段代码在前几个产品上运行得很好,创建它们很好,点击 #4 然后停止。一开始我以为是foreach,换成了for,没区别。
foreach(var prod in mainProducts)
{
//Does Checks .. Code Removed
if (!exists)
{
...
_db.DeviceVariations.Add(theEntity);
await _db.SaveChangesAsync(); //Stops here..
}
}
有没有人经历过这种情况,知道可能的原因吗?
解决方案
推荐阅读
- php - “收到未知参数:0”条纹 Api 错误
- azure - Azure Pipelines 连接到 Azure SQL 数据库 AAD - 用户登录失败
- python - 使用 Python 将具有 True 或 False 值的 2 个数据框列可视化为维恩图?真值表到维恩图?
- go - 通过 vendoring 修改 go 标准库 crypto/tls
- php - 将字符串数组转换为键/值数组
- c# - 我想使用直接链接下载文件而不读取文件
- biztalk - BizTalk 的 WrongBodyPartException 的可能原因
- javascript - 将查询集数据作为变量模板传递给 javascript
- mongodb - 如何配置每个数据库的 Mongodb 缓存大小?
- ruby - 为什么 Ruby Procs 有时会返回,有时会出错?