1

Customer、Order、および OrderItem テーブルがあります。OrderItem.OrderID は Order.ID を指します。Order.CustomerID は Customer.ID を指します。つまり、共通の Customer -> Order -> OrderItem セットアップです。

そして、Order オブジェクトと OrderItem オブジェクトを含む Customer ビュー モデルがあります。

ユーザーがビューで新しい Customer、新しい Order、および新しい OrderItems を作成した場合、これらは Customer ビュー モデル オブジェクト (すべての Customer、Order、OrderItem データを含む) にバインドされます。EF を使用してこの Customer ビュー モデルを保存する方法はありますか?

私の混乱は、Customer、Order、OrderItem(s) がすべて新しいレコードであるためです。これは、Customer.ID (自動増分番号) がまだ生成されていないことを意味します (レコードはまだ保存されていません)。Order.CustomerID を保存するときに使用する ID を EF はどのように認識するのでしょうか。

最初に Cusomer を保存し、Customer.ID を取得してから Order を保存し、次に Order.ID を取得してから OrderItem を保存する必要がありますか?

ありがとう。

4

2 に答える 2

1

これを呼び出すだけです:

context.Customers.Add(customer);
context.SaveChanges();

マッピングですべてが正しく構成されている場合、EF は関係を理解し​​、最初に顧客を正しく保存し、その Id を取得して、関連する注文を保存するために使用します。注文品も同様に扱います。

于 2012-05-22T10:43:46.763 に答える
0

保存する前にオブジェクトの関係を確立している限り、機能するはずです

customer.Orders = new List<Orders>();
customer.Orders.Add(order);

order.OrderItems = new List<OrderItems>();
order.OrderItems.Add(orderItem);

context.Customer.Add(customer);
context.SaveChanges();
于 2012-05-22T11:00:13.503 に答える