0

我有以下代码:

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(); 
     }
}

问题是保存更改没有与数据库一起保存。

编辑:该值也不是在其他线程中持久存在的。

我究竟做错了什么?

4

1 回答 1

1

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

于 2013-07-19T09:01:12.997 回答