Order オブジェクトを持つ Customer オブジェクトがあるとします。Order オブジェクトには OrderDetail オブジェクトがあります。
Customer oCustomer
using(var context = new MyContext)
{
oCustomer = context.Include("Order.OrderDetail").Find(1);
}
oCustomer.Name ="blah blah";
oCustomer.Order.Description = "blah blah";
oCustomer.Order.OrderDetail.Quantity = 10;
Customer の状態を次のように変更すると、次のようになります。
using(var context = new MyContext)
{
context.Entry(oCustomer).State = EntityState.Modified.
context.SaveChanges();
}
これにより、oCustomer オブジェクトのみが保存され、oCustomer にある Order および OrderDetail は保存されません。context.Entry(oCustomer).State = EntityState.Modified は oCustomer の状態のみを変更し、Order と OrderDetail は変更しないためです。現在、変更が保存されるように、ObjectGraph 内の各エンティティの状態を手動で変更する必要があります。親エンティティだけでなく、ObjectGraph 全体の状態を変更する方法はありますか? それを行うための拡張メソッドまたは他の方法はありますか?