EF并发问题,在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。

1

Entities data=new Entities();
 
            var list = from p in data.Record
                        where p.CreateTime >= d && p.CreateTime < DateTime.Today
                        select new
                        {
                            ID = p.ID,
                            Name = p.Name,
                            UserID=p.UserID
                        };
 
 
            foreach (var item in list)
            {
                var record = data.Record.FirstOrDefault(a => a.ID == item.ID);
                 if (record != null)
                 {
                     record.RankTime = record.CreateTime.AddDays(3);
                     data.SaveChanges();
 
 
                     BusinessModel.KeywordRank mod = new KeywordRank();
                     mod.RecordID = item.ID;
                     mod.UserID = item.UserID;
                     mod.Name = item.Name;
                     mod.Rank = 0;
                     mod.CreateTime = DateTime.Now;
 
                     data.KeywordRank.Add(mod);
                     data.SaveChanges();      //此处抛异常 在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。 
                 }
            }

第10行大括号后加 .ToList() 就好了。

遍历 中 data.SaveChanges();  一定要 tolist

posted @ 2020-07-05 11:23  netlock  阅读(518)  评论(0编辑  收藏  举报