EF - Update multiple rows in database without using foreach loop

前端 未结 2 1541
囚心锁ツ
囚心锁ツ 2020-12-16 00:56

My test code:

using (var db = new MyDbContext())
{
  string fromUser = \"\"; //sender
  string toUser = \"\"; //receiver

  var messages = db.Message.Where(x         


        
2条回答
  •  借酒劲吻你
    2020-12-16 01:41

    You don't need to SaveChanges() on each iteration. That will hit the database multiple times. Try:

    using (var db = new MyDbContext())
    {
      string fromUser = ""; //sender
      string toUser = ""; //receiver
      var messages = db.Message.Where(x => x.FromUser == fromUser && x.ToUser == toUser)
                     .ToList();
      messages.ForEach(m => m.IsRead = true);
      db.SaveChanges();
    }
    

提交回复
热议问题