DotNet Core C#并发实体框架(键值重复唯一约束)

时间:2018-12-27 20:12:57

标签: c# .net-core entity-framework-core

TL&DR:多个并发任务试图将相同的记录放入数据库中;本质上,几个任务正在启动,并打开了几个可能相同的文件。

至关重要的是,根据IP地址将所有信息保存在一个高度嵌套的表中;这是我在过去四天的工作中一直尝试的方法(即使在圣诞节期间!)

  • 试图在do while()循环(带有context.Rollback()。)中使用事务处理[没有用!]
  • 试图在每个插件中放入随机睡眠以停止比赛状态[无效!]
  • Made Code不再是Asyc。 [没用!]
  • 当前算法无法正常工作,并且会占用CPU! [不工作!] \
  • 将每个对象分别添加到表中[无效!]

在插入过程中,每个对象都会递增。这就是为什么这没有意义。我不知所措。

对象关系

IP has many Incidents;

1 个答案:

答案 0 :(得分:2)

我认为您可能在以下几行中有问题:

Vendor vendorInstancer = new Vendor();
vendorInstance.IncidentID = IncidentId;
context.Vendors.Add(vendorInstancer);

注意变量名。您创建了vendorInstancer,但更新了vendorInstance的ID。也就是说,不是要保存到数据库的实体。很难发现一个字母的差异。