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

问题描述 投票:2回答:1

我开始使用EFCore.BulkExtensions进行批量操作,它的工作非常好。

(见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);
        }
c# entity-framework-core ef-core-2.0
1个回答
4
投票

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

引擎盖下使用SqlBulkCopy进行插入,更新/删除将BulkInsert与原始Sql MERGE(MsSQL 2008+)结合使用。

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

© www.soinside.com 2019 - 2024. All rights reserved.