实体框架并行,如何更新数据库

本文关键字:更新 数据库 何更新 框架 并行 实体 | 更新日期: 2023-09-27 18:23:57

我有以下代码:

Parallel.ForEach(recipients, pOptions, (item, state) =>
{
     using (Entities ent = new Entities())
     {
         Campaign camp = ent.Campaigns.Where(xx => xx.CampaignID == campaignID).FirstOrDefault();
         camp.Sent = Camp.Sent + 1; 
         ent.SaveChanges(); 
     }
}

问题是保存更改没有持久化到数据库中。

EDIT:这两个值都不会在其他线程中持久化。

我做错了什么?

实体框架并行,如何更新数据库

只要每个线程都有自己的上下文,就可以从不同的线程调用SaveChanges。在这种情况下,DB负责并发事务。我不明白的是,代码的目的是什么?此外,还有一种可能的种族状况。换句话说,结果是不可预测的。