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

Avi*_*iko 3 c# entity-framework-core ef-core-2.0

我开始将EFCore.BulkExtensions用于ef批量操作,它的工作非常好。

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

我是否还需要调用SaveChanges:

        using (var db = new ReportingContext())
        {
            db.BulkInsertOrUpdate(entities);
            db.SaveChanges();
        }
Run Code Online (Sandbox Code Playgroud)

还是足够好?

        using (var db = new ReportingContext())
        {
            db.BulkInsertOrUpdate(entities);
        }
Run Code Online (Sandbox Code Playgroud)

Iva*_*oev 5

链接中的页面包含以下内容

在后台使用SqlBulkCopy进行插入,对于Update / Delete,将BulkInsert与原始Sql MERGE(MsSQL 2008+)结合在一起。

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

  • 谢谢,我现在明白多了。 (2认同)