我知道要更新EF中的对象,我可以执行以下操作...
var hotel = context.Hotels.SingleOrDefault(u => u.HotelID == editedHotel.HotelID);
hotel.Name= editedHotel.Name;
hotel.Address = editedHotel.Address;
hotel.RoomCount = editedHotel.RoomCount;
context.SaveChanges();
但是,如果许多字段需要更新,这将花费很长时间。
有什么办法可以做...
var hotel = context.Hotels.SingleOrDefault(u => u.HotelID == editedHotel.HotelID);
hotel = editedHotel;
context.SaveChanges();
...因此所有字段都可以一口气更改?
最佳答案
怎么样...
var cachedHotel = context.Hotels.Local
.FirstOrDefault(h => h.id = editedHotel.id);
if (cachedHotel != null)
{
context.Hotels.Detach(cachedHotel);
}
context.Hotels.Attach(editedHotel);
context.Entry(editedHotel).State = System.Data.EntityState.Modified;
context.SaveChanges();
关于c# - 从对象更新EF,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13091029/