zoukankan      html  css  js  c++  java
  • 禁用更改的自动检测

    使用大多数 POCO 实体时,确定实体的更改方式 (,因此需要将更新发送到数据库) 由检测更改算法处理。 检测更改的工作方式是检测实体的当前属性值与在查询或附加实体时存储在快照中的原始属性值之间的差异。 本主题所介绍的方法同样适用于查询使用 Code First 和 EF 设计器创建的模型。

    默认情况下,在调用以下方法时,实体框架自动执行检测更改:

    • DbSet.Find
    • DbSet
    • DbSet
    • DbSet. AddRange
    • DbSet
    • DbSet. RemoveRange
    • DbSet
    • DbContext.SaveChanges
    • DbContext. GetValidationErrors
    • DbContext.Entry
    • DbChangeTracker

    禁用更改的自动检测

    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;
        }
    }

    如果正在跟踪上下文中的大量实体,并在循环中多次调用其中一种方法,则可以通过在循环的持续时间内关闭更改检测来显著提高性能

  • 相关阅读:
    nginx 安装教程
    php 安装教程
    第一个AWK程序的尝试
    memcached-tool 工具
    java数据库 DBHelper
    Innodb的三大关健特性
    我遇到的一个ClassNotFoundException问题
    storm学习初步
    再探 jQuery
    简单聊一聊正则表达式中的贪婪匹配和非贪婪匹配
  • 原文地址:https://www.cnblogs.com/cxxtreasure/p/14281697.html
Copyright © 2011-2022 走看看