DB设置如何多次更新
本文关键字:更新 何多次 设置 DB | 更新日期: 2023-09-27 18:28:01
我在尝试使用dbset更新记录时遇到了一个问题。以下是我的代码:
CROPContext db = new CROPContext();
var EPins = from EPin in db.Pins.Take(5)
where
(EPin.UserID == null && EPin.CC == 5000)
select EPin;
foreach (var item in Epins.ToList())
{
item.OrderID = OrderID;
item.UserID = intUserID;
}
db.SaveChanges();
当我更新记录时,它会更新所有记录。然后我检查了数字EPins.Count(),我发现它不是5,而是所有的数字。如果我想更新前5条记录,我应该怎么做?
var EPins = (from EPin in db.Pins
where
(EPin.UserID == null && EPin.CC == 5000)
select EPin).Take(5);
foreach (var item in Epins.ToList())
{
item.OrderID = OrderID;
item.UserID = intUserID;
}
db.SaveChanges();
尝试上面的
db.Pins.Where(EPin => EPin.UserID == null && EPin.CC == 5000).Take(5).ToList()
.ForEach( item => { item.OrderID = OrderID; item.UserID = intUserID; });
db.SaveChanges();
如果使用EF6,则可以使用EntityFramework。扩展:
db.Pins.Where(EPin => EPin.UserID == null && EPin.CC == 5000)
.Update(p => new Pin { OrderID = OrderID; UserID = intUserID; });
由于性能影响,避免使用.ForEach
,流式传输数据,而不是将其具体化