我有以下代码:
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();
}
}
问题是数据库不会保留保存更改。
编辑:其他线程中的值都不存在。
我做错了什么?
答案 0 :(得分:1)
只要每个线程都有自己的上下文,就可以保存从不同的线程调用 SaveChanges 。在这种情况下,DB负责并发事务。 我不明白,代码的目的是什么? 除了可能的竞争条件。换句话说,结果是不可预测的。