EntityFramework DataContext使得SaveChanges在一段时间后变慢

时间:2016-09-27 15:58:01

标签: performance entity-framework datacontext

我的应用程序中有一个datacontext,有许多线程写入它。 因此,它所拥有的内容越来越大,当我保存更改时,上下文保持同样大(如预期的那样)。

由于它越来越大,SaveChanges持续时间越来越长。

是否有选项可以清除已对其进行的更改并保存以便性能再次提升?

我现在只想到的是在一段时间后通过重新安装我的主要和唯一的Datacontext实例来重置它。

问候,

1 个答案:

答案 0 :(得分:3)

DbContext旨在成为一个短暂的对象。您应该创建它,使用它,并尽快处理它。

using (var context = new YourContext())
{ 
    //do your stuffs

    //call save changes
    context.SaveChanges();
}

//let the using block dispose the context when exit.

由于一切都是相对的,也许你的场景需要更多思考。 Here是一篇很好的文章,我建议您更多地了解如何正确处理数据上下文生命周期。