Entity Framework 扩展程序的批量操作与 EFE 的批量操作
Entity Framework extension's batch operations vs EFE's bulk operations
我正在研究 Entity Framework 批量操作的扩展,我从同一个开发者 EF Plus 那里找到了。现在EFE有bulk操作是付费的,EF PLus有Batch操作,号称只进行批量update和delete,其实叫batch操作。那么EFE的批量操作和EF加批量操作有什么区别呢?
免责声明:我是项目的所有者Entity Framework Extensions
免责声明:我是项目的所有者Entity Framework Plus
称为Bulk Operation
和Batch 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;
});
我正在研究 Entity Framework 批量操作的扩展,我从同一个开发者 EF Plus 那里找到了。现在EFE有bulk操作是付费的,EF PLus有Batch操作,号称只进行批量update和delete,其实叫batch操作。那么EFE的批量操作和EF加批量操作有什么区别呢?
免责声明:我是项目的所有者Entity Framework Extensions
免责声明:我是项目的所有者Entity Framework Plus
称为Bulk Operation
和Batch 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;
});