会议室模型
public class Room
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
}
Id
是此处的主键
在实体框架中,所有房间详细信息都在dbcontext
中dbContext.Rooms
还有一个IList<Room> updateRooms
,其中列出了几个房间的更新名称和地址。
如何使用主键dbContext.Rooms
更新updateRooms
中Id
的匹配项,并使用实体框架保存到数据库。
注意:我明白我可以在dbContext.Rooms中更新每个房间并保存如下
foreach (var room in updateRooms)
{
dbContext.Rooms.Attach(room);
dbContext.Entry(room).State = EntityState.Modified;
dbContext.SaveChanges();
}
但有没有办法附上所有房间并立即保存
答案 0 :(得分:2)
另一个awswer
foreach (var room in updateRooms)
{
dbContext.Entry(room).State = EntityState.Modified;
}
dbContext.SaveChanges();
你也可以使用它。
答案 1 :(得分:1)
首先您需要找到包含Id(主键)的所有条目并更新值。然后调用SaveChanges()方法。
foreach (var room in updateRooms)
{
var roomToUpdate = dbContext.Rooms.Find(room.Id);
roomToUpdate.Name = room.Name;
roomToUpdate.Address = room.Address;
}
dbContext.SaveChanges();
答案 2 :(得分:-1)
foreach(var item in updateRooms)
{
var oldModel= dbContext.Rooms.First(a => a.Id == item.Id);
if(oldModel !=null)
{
oldModel.Name = item.Name;
oldModel.Address = item.Address;
dbContext.SaveChanges();
}
}
试试这个。