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

时间:2013-07-19 08:46:32

标签: c# entity-framework

我有以下代码:

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

问题是数据库不会保留保存更改。

编辑:其他线程中的值都不存在。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

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