首页 > 其他 > 详细

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

时间:2018-02-18 12:51:45      阅读:267      评论:0      收藏:0      [点我收藏+]

   默认情况下,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中关闭自动识别变更功能提升效率的一点小技巧

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!