EF6在单个查询中插入多行可能性

时间:2017-11-20 18:21:09

标签: c# sql-server entity-framework query-optimization

为什么EF SaveChanges将在单独的查询中插入/删除每条记录?

假设此代码:

using (var db = new AppEntities())
{
    using (var transaction = db.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
    {
        try
        {
            db.Table1.AddRange(list);
            db.Table2.RemoveRange(list);
        }
        db.SaveChanges();
        transaction.Commit();
    }
}

我使用SQL Server Profiler检查这些行,并且令人惊讶的是每条记录有一个INSERT INTO!更糟糕的是,同样的删除!对于100行,这不是一个严重的问题。但是5000行需要2分钟!

是否可能告诉EF, PLEASE 以下列方式执行此操作:

INSERT INTO TABLE1 VALUES (),(),(),();

0 个答案:

没有答案