实体框架扩展的批量操作与EFE的批量操作

时间:2017-12-12 09:30:16

标签: c# entity-framework-6 entity-framework-plus entity-framework-extensions

我正在研究批量操作的Entity Framework扩展,我从相同的开发人员EF Plus中找到了。现在,EFE已经支付批量操作,EF PLus具有批量操作,这些操作声称仅执行批量更新和删除,但称为批量操作。那么EFE的批量操作和EF加批量操作之间有什么区别?

1 个答案:

答案 0 :(得分:2)

免责声明:我是该项目的所有者Entity Framework Extensions

免责声明:我是该项目的所有者Entity Framework Plus

名为Bulk OperationBatch Operation的方法之间存在巨大差异。

批量操作

Bach操作在数据库中执行操作,而不在上下文中加载数据。简而言之,一切都在数据库方面完成。

两个库都支持它,最终将在一个库中支持(无论库决定是免费的)

在EFE中,方法命名为:

  • DeleteFromQuery
  • UpdateFromQuery

在EF +中,方法命名为:

  • 删除
  • 更新

批量操作

批量操作仅存在于EFE中。它们是立即操作,它们获取实体列表并将其与数据库一起保存。

  • 批量保存更改
  • 批量插入
  • 批量删除
  • 批量更新
  • 批量合并

实施例

// Easy to use
context.BulkSaveChanges();

// Easy to customize
context.BulkSaveChanges(bulk => bulk.BatchSize = 100);

// Perform Bulk Operations
context.BulkDelete(customers);
context.BulkInsert(customers);
context.BulkUpdate(customers);

// Customize Bulk Operations
context.BulkInsert(customers, options => {
   options => options.IncludeGraph = true;
});
context.BulkMerge(customers, options => {
   options.ColumnPrimaryKeyExpression = 
        customer => customer.Code;
});