機能していない行を挿入するためのコードがいくつかありました。
using (MyDbContext context = new MyDbContext()) {
foreach (Order o in FormOrders) { //That's a List<T> that got generated based on a web form
context.Orders.Add(o);
}
context.SaveChanges();
}
私はついにそれを機能させる方法を見つけました:
foreach (Order o in FormOrders) {
context.Orders.Add(o);
context.SaveChanges();
}
しかし、それはあまり効率的ではないことに気づきました。確かに、一度に挿入されるオーダーの最大数は約 40 ですが、ベスト プラクティスをできる限り活用したいと考えています。
コード スニピット #1 は、呼び出されo
たポイントの範囲外であるためSaveChanges()
機能しなかったと思いますが、これがどのように機能するかを確認するのに十分ではなく、理解できるほど十分に理解していません。より良い方法は何ですか。
また、すべての行に DbContext の新しいインスタンスを使用することになっていると聞きましたが、上記の場合に実装するのはさらに効率的ではありません。本当?
編集
この質問は無視してください。どちらのバージョンも動作するようです。何が問題だったのかわかりません。他の誰かがコメント/回答の一部を役立つと思うかもしれないので、私はそれを削除していません。