重複の可能性:
ADO.NET Entity Framework でそのレコードを再度選択せずにレコードを更新する方法は?
オブジェクトとその子のリストをグリッドに表示する必要がある Windows アプリケーションに取り組んでいます。そのため、ユーザーはエンティティ フレームワークから取得したエンティティを変更できます。
データベース内のオブジェクトを更新している間、データベースからオブジェクトを取得して新しい値を割り当てる必要があるようです。これにより、パフォーマンスの問題が発生する可能性があります。これに対する回避策はありますか?
public class Vehicle
{
public Vehicle()
{
this.Fillups = new List<FillupEntry>();
this.Reminders = new List<Reminder>();
}
public int VehicleId { get; set; }
public int UserId { get; set; }
public string Name { get; set; }
public string ModelName { get; set; }
public ICollection<FillupEntry> Fillups { get; set; }
public ICollection<Reminder> Reminders { get; set; }
}
public void Update(Vehicle updatedVehicle)
{
Vehicle vehicleToUpdate =
this.GetDbSet<Vehicle>()
.Where(v => v.VehicleId == updatedVehicle.VehicleId)
.First();
vehicleToUpdate.Name = updatedVehicle.Name;
vehicleToUpdate.Year = updatedVehicle.Year;
vehicleToUpdate.MakeName = updatedVehicle.MakeName;
vehicleToUpdate.ModelName = updatedVehicle.ModelName;
vehicleToUpdate.SortOrder = updatedVehicle.SortOrder;
vehicleToUpdate.PhotoId = updatedVehicle.PhotoId;
this.SetEntityState(vehicleToUpdate, vehicleToUpdate.VehicleId == 0
? EntityState.Added
: EntityState.Modified);
this.UnitOfWork.SaveChanges();
}