• 禁用更改的自动检测


    使用大多数 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;
        }
    }

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

  • 相关阅读:
    VS2013连接SQLSERVER数据库时显示无法添加数据连接
    线段树模板
    网格中的极大子矩形的另类解法
    斜率优化
    三维前缀和
    Math Magic ZOJ
    01背包 多重背包 完全背包模板记录
    多重背包的单调队列优化
    Largest Rectangle in a Histogram POJ
    Game with string CodeForces
  • 原文地址:https://www.cnblogs.com/cxxtreasure/p/14281697.html
Copyright © 2020-2023  润新知