Нужно ли вызывать SaveChanges при использовании EFCore.BulkExtensions - PullRequest
0 голосов
/ 05 сентября 2018

Я начал использовать 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);
        }

1 Ответ

0 голосов
/ 05 сентября 2018

Страница из ссылки содержит следующее

Под капотом используется SqlBulkCopy для вставки, для обновления / удаления объединяет BulkInsert с необработанным Sql MERGE (MsSQL 2008 +).

Таким образом, ответ - нет, вам не нужно вызывать SaveChanges, потому что EFCore.BulkExtensions работает напрямую с базой данных (SqlServer). Объекты, которые вы передаете, могут даже не быть привязаны (отслежены) к контексту. Он использует контекст только для получения метаданных модели объекта и информации о соединении / транзакции.

...