这是具有两个索引的本地数据库。没有其他连接。即使更新一行,也会出现并发异常。 ??
请注意,添加行效果很好。
阅读其他线程,我确保datetime字段为DATETIME2(7)。另外,我尝试将“更改”减少为单个未索引字段,但仍然出现异常。
代码减少为可复制的样本。
错误: Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException:'数据库操作预期会影响1行,但实际上会影响2行。自加载实体以来,数据可能已被修改或删除。有关了解和处理乐观并发异常的信息,请参见http://go.microsoft.com/fwlink/?LinkId=527962。
var lastSet = context.DB.Where(u => u.time >= startTime);
foreach (var line in lines)
{
var found = lastSet.FirstOrDefault(u => u.id.Trim() == line["id"].Trim());
if (found != null)
{
if (found.updated.ToString() != DateTime.Parse(line["updated"]).ToString())
{
found.count = string.IsNullOrWhiteSpace(line["count"]) ? 0 : double.Parse(line["count"]);
//more like this, with 2 dates, 10 doubles, 1 decimal and 10 strings.
++changed;
}
}
}
if ( changed>0 ) //even when changed is 1, the error occurs
{
context.SaveChanges(); //DBUpdateConcurrencyException HERE
}