使用 EFCore.BulkExtensions 时是否需要调用 SaveChanges
Do I need to call SaveChanges when using EFCore.BulkExtensions
我开始使用 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);
}
来自 link 的页面包含以下内容
Under the hood uses SqlBulkCopy for Insert, for Update/Delete combines BulkInsert with raw Sql MERGE (MsSQL 2008+).
所以答案是否定的,您不需要调用 SaveChanges
因为 EFCore.BulkExtensions 直接与数据库 (SqlServer) 一起工作。您传递的实体甚至可能不会附加(跟踪)到上下文中。它仅使用上下文来获取实体模型元数据和 connection/transaction 信息。
我开始使用 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);
}
来自 link 的页面包含以下内容
Under the hood uses SqlBulkCopy for Insert, for Update/Delete combines BulkInsert with raw Sql MERGE (MsSQL 2008+).
所以答案是否定的,您不需要调用 SaveChanges
因为 EFCore.BulkExtensions 直接与数据库 (SqlServer) 一起工作。您传递的实体甚至可能不会附加(跟踪)到上下文中。它仅使用上下文来获取实体模型元数据和 connection/transaction 信息。