使用EFCore.BulkExtensions时,是否需要调用SaveChanges?

10

我开始使用EFCore.BulkExtensions进行ef批量操作,效果非常好。

(请参见https://github.com/borisdj/EFCore.BulkExtensions/)

我需要调用SaveChanges吗?

        using (var db = new ReportingContext())
        {
            db.BulkInsertOrUpdate(entities);
            db.SaveChanges();
        }

还是这样就足够了吗?

        using (var db = new ReportingContext())
        {
            db.BulkInsertOrUpdate(entities);
        }
1个回答

10

这个链接页面包含以下内容

底层使用SqlBulkCopy进行插入,对于更新/删除,结合批量插入和原生SQL的MERGE语句(MsSQL 2008+)。

因此,答案是否定的,您不需要调用SaveChanges,因为EFCore.BulkExtensions直接与数据库(SqlServer)交互。传递给它的实体甚至可能没有附加(被跟踪)到上下文。它只使用上下文来获取实体模型元数据和连接/事务信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接