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

默认情况下,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;
    }
}注意不要忘记循环结束后重新开启这个功能。

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

时间: 2024-10-06 11:08:25

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

给大家分享12个或许能在实际工作中帮助你解决一些问题的JavaScript的小技巧

使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用!!variable做检测,只要变量的值为:0.null." ".undefined或者NaN都将返回的是false,反之返回的是true.比如下面的示例: 01 function Account(cash) { 02 this.cash = cash; 03 this.hasMoney

在Axure中使用FontAwesome替换你的网站图标[axure小技巧]

你是不是还在为你的网站做一个很小的图标而忙碌着?你是不是还在为找一个图标导出百度或者谷歌?你有没有想过可以用字体来做一个图标代替普通的图片图标?这两天给公司做案例,由于自己又对设计不熟悉,寻找图标的苦差可不是很好做.同事分享了一个用字体代替图片做网站图标的资源,在此非常感谢!Font Awesome,原只为Bootstrap而设计的字体图标,不过,现在你可以单独用它来为你的网站工作.丢掉图片图标吧,跟我一起来用Font Awesome. 使用方法: 1. 下载 Font Awesome 官方网站

分享两个提高效率的AndroidStudio小技巧

原文:https://www.jianshu.com/p/68fd5373effc 这次分享两个 Android Studio 的小技巧,能够有效提高效率和减少犯错,尤其是在团队协作开发中. Getter 模板修改--自动处理 null 判断 格式化代码自动整理方法位置--广度 or 深度 好了,下面优先介绍下这两个小技巧有什么作用,然后再给出使用教程,想直接看教程的可以直接跳到最后. 目的 Getter 模板修改 开发过程中,经常会遇到空指针异常,尤其是在线上 bug 中,由于未进行 null

YbSoftwareFactory 代码生成插件【二十一】:Web Api及MVC性能提升的几个小技巧

最近在进行 YbSoftwareFactory 的流程功能升级,目前已经基本完成,现将用到的一些关于 Web Api 及 MVC 性能提升的一些小技巧进行了总结,这些技巧在使用.配置上也相当的简单,但通常都能大大提高应用程序的性能,希望对大家有用. 一.缓存 为了避免每次请求都去访问后台的资源,我们一般会考虑将一些更新不是很频繁的,可以重用的数据,通过一定的方式临时地保存起来,后续的请求根据情况可以直接访问这些保存起来的数据,这种机制就是所谓的缓存机制.缓存分为页面输出缓存,内存数据缓存和缓存依

一个在SOUI中加速自适应大小的控件更新的小技巧

在SOUI中的控件有指定大小和自适应大小两类控件. 指定大小的控件,在控件内容更新时不需要重新布局,而自适应大小的控件在内容变化后会导致父窗口重新布局. 最近有网友发现在高速批量更新一个窗口的自适应控件(如50次/S的速度批量更新30个文件控件)时,SOUI的性能很低. 跟踪发现导致这个问题的关键在于在一次刷新过程中,每更新一个控件就需要执行一次重新布局,显而易见,这种情况下效率是非常低的. 解决这个问题的方法有两种: 一个简单的方法就是将自适应大小的文本控件改成固定大小的文本控件,如此,在定时

提高算法效率的一些小技巧

 1.善于写变量作用域,不用的变量及时释放掉 { int a = 0; //一系列操作 }//执行到这里的时候,大括号里的a就被释放了   2.前自增自减要比后自增自减效率稍微高一点 ++i   效率>   i++ --i   效率>   i--  3.if(条件表达式) a.这里的条件表达式可以先计算出来,得到一个结果,放到if()小括号里面: b.也可以直接放到()里面 建议:适当的情况之下,条件表达式直接放到小括号()里面,因为:(逻辑运算表达式的断路问题^_^) 逻辑表达式,&

Word2003中10个让你提升工作效率的技巧

虽说Word2010的出现增添了许多新功能,新用法,但是Word2003依旧不过时.相信大多数资深的办公族们目前电脑上装的依然是Word2003版本,毕竟这么多年了,用着也顺手.为方便大家使用时更顺手,下面学习啦为大家推荐10个快速输入技巧,可以帮助大家在工作中提高工作效率! 1.快速输入数字中的小数点 审计人员在结束现场审计工作,编制审计报告时,需要输入大量的审计数据,你如果是用安装Office时携带的五笔字型或拼音输入法,会为输入数字中的小数点而在中文与英文输入法间不断调整而烦恼(使用陈桥五

Android测试提升效率批处理脚本(三)

前言: 前面放出过几次批处理,这次只放一个环境检查的被管理员给打回来了,不得不再找找几个有含金量的放出来,请看正文~~~ 目录 1.Android环境检查 2.Android内存监控 3.模拟蓝牙手柄事件 一.Android环境检查 @ECHO OFF ECHO.     ::::::::::::::::::::::::::::::::::::::::::::::::: ECHO.     ::                                             :: ECH

atitit groovy 总结java 提升效率

atitit groovy 总结java 提升效率 #---环境配置 1 #------安装麻烦的 2 三.创建groovy项目 2 3.  加入? Groovy 类 2 4.  编译执行groovy类 3 Groovy断点调试不生效的解决 4 Groovy实现执行原理 5 1. Groovy脚本的执行.. 5 2. Groovy类的执行.. 5 Groovy语法长处: 6 3. 动态类型def 6 4. 循环变量不须要def 6 5. String 和Gstring 6 6. 范围 6 7.