レッツにおける企業の状態の変更、我々はOrderオブジェクトを持つCustomerオブジェクトを持っていると言います。 OrderオブジェクトにはOrderDetailオブジェクトがあります。は、Entity Frameworkの4.1
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;
は今、私は次のようにお客様の状態を変更する場合:
using(var context = new MyContext)
{
context.Entry(oCustomer).State = EntityState.Modified.
context.SaveChanges();
}
これだけoCustomerオブジェクトではなくoCustomerにされている順序とOrderDetailが保存されます。 context.Entry(oCustomer).State = EntityState.Modifiedは、OrderおよびOrderDetailではなくoCustomerの状態のみを変更します。現在、ObjectGraphの各エンティティの状態を手動で変更して、変更を保存する必要があります。親エンティティの代わりにObjectGraph全体の状態を変更する方法はありますか?拡張メソッドやその他の方法がありますか?
ありがとうございました。できます!!しかし、それはエレガントなソリューションですか?エンティティを保存する必要があるたびに、エンティティをリロードしています。 – Baig
エンティティのすべての情報を持っている場合は、エンティティを新規作成することができます。すべてのエンティティをコンテキストに添付し、すべてを変更するように設定してからsavechangesを呼び出します。 http://stackoverflow.com/questions/7001602/asp-net-mvc-with-ef-4-1-navigation-properties/7008849#7008849は単純なシナリオでしか機能しません。 – BennyM