我有几个服务使用实体框架来保存数据库中的许多更改。
当它们在 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() 吗?我可以使用不同的方法吗?
提前致谢。