Entity Framework を使用して多くの変更をデータベースに保存するサービスがいくつかあります。
IIS で実行すると非常に高速ですが、デバッグ モードで開発用コンピューターで実行すると数分かかり、残りのすべてのクエリがクラッシュすることがわかりました (そうでない場合でも)。私が更新している同じテーブルで)。
だから私はこれを私がすべき方法でやっていないと思っていました 8-)
私のコードは次のようなものです:
public void CancelOrders(ObservableCollection<long> idOrders)
{
Model.Entities context = new Model.Entities();
var query = from orders in context.ORDERS.Include("CUSTOMERS")
where idOrders.Contains(orders.id_order)
select orders;
foreach (var order in query)
{
foreach (var customer in order.CUSTOMERS)
{
customer.served = false;
}
context.ORDERS.DeleteObject(order);
}
context.SaveChanges();
}
context.SaveChanges() を実行すると問題が発生します... 以前は約 2000 行であり、完了するまでに時間がかかります (その間、NOBODY は同じデータベースを使用できます)。
もっと頻繁な context.SaveChanges() を作成する必要がありますか??? 別のアプローチを使用できますか??
前もって感謝します。