码迷,mamicode.com
首页 > 其他好文 > 详细

EntityFramework6中关闭自动识别变更功能提升效率的一点小技巧

时间:2018-02-18 12:55:03      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:gpo   entry   nal   make   nbsp   方法   ati   tracker   work   

   默认情况下,ef6能够在调用以下方法时自动判别实体是否变更:

  • DbSet.Find
  • DbSet.Local
  • DbSet.Remove
  • DbSet.Add
  • DbSet.Attach
  • DbContext.SaveChanges
  • DbContext.GetValidationErrors
  • DbContext.Entry
  • DbChangeTracker.Entries

   当上下文追踪很多实体,并且你在一个循环中调用很多次这些方法的时候,你可以在循环之前先关闭自动识别功能,可以极大提升效率。例如:

using (var context = new BloggingContext()) 
{ 
    try 
    { 
        context.Configuration.AutoDetectChangesEnabled = false; 
 
        // Make many calls in a loop 
        foreach (var blog in aLotOfBlogs) 
        { 
            context.Blogs.Add(blog); 
        } 
    } 
    finally 
    { 
        context.Configuration.AutoDetectChangesEnabled = true; 
    } 
}
注意不要忘记循环结束后重新开启这个功能。

 

EntityFramework6中关闭自动识别变更功能提升效率的一点小技巧

标签:gpo   entry   nal   make   nbsp   方法   ati   tracker   work   

原文地址:https://www.cnblogs.com/nick-xlj/p/8452682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!