efcore
efcore copied to clipboard
Improve database updates
This is a grouping of related issues. Feel free to vote (👍) for this issue to indicate that this is an area that you think we should spend time on, but consider also voting for individual issues for things you consider especially important.
This an "epic" issue for the theme of improvements to SaveChanges and other database updates. Specific pieces of work will be tracked by linked issues.
Done in 7.0
- [x] Bulk (i.e. set-based) CUD operations (without loading data into memory) #795
- [x] Perf: improve batching for TPH #3954
- [x] Increase batch size by letting ModificationCommandBatch determine it #20664
- [x] PERF: Investigate optimized rows affected round-tripping when batching #7038
- [x] Map inserts, updates, and deletes (CUD operations) to stored procedures #245
- [x] https://github.com/dotnet/efcore/issues/28435
Backlog
- [ ] #18990
- [ ] #16949
- [ ] #9118
- [ ] #11574
- [ ] #14078
- [ ] #19508
- [ ] #10443
- [ ] #4526
- [ ] #24176
- [ ] #29897
- [ ] #1699
- [ ] Consider taking into account collection order in topological sort when entities with generated keys are inserted #15585
- [ ] Add IComparable functionality to ValueComparer to support key ordering #23775
- [ ] Make ModificationCommandComparer compare provider values #27761
- [ ] Add affected entries to
SavedChangescallback #26564 - [ ] Generate idempotent SQL for SaveChanges when retrying a commit failure #10119
- [ ] Stop generated cascade delete statements when the DeleteBehavior is database-side #21521
- [ ] Provide an option to automatically bulk delete based for cascade delete #18960
- [ ] Provide more context to ExecutionStrategy #30023
- [ ] Additional ExecutionStrategy extension point: OnOperationRetrying(Async) #12536
- [ ] Provide a RetryingExecutionStrategy that relies on the new DbException.IsTransient #21606
- [ ] Transaction commit failure: avoid retry by default? #22904
- [ ] Generate idempotent SQL for SaveChanges when retrying a commit failure #10119
- [ ] Consider cancelling the command in SaveChanges when an error occurs #30182
- [ ] Delegate to System.Data savepoint API when that becomes available #21120
- [ ] A testing-only transaction manager which replaces nested transactions with savepoints #26504
- [ ] Batching through a table variable may not work for non-default collations #7172
- [ ] Allow more granular configuration of batch size #12443
- [ ] End-to-end soft delete #4025
- [ ] Support store-generated values that are both written to and also read back from the database in the same command #23196
- [ ] Strategy for inserting rows with table-values parameters #2484
- [ ] #27761
- [ ] #30705
- [ ] #15310
- [ ] #28806
- [ ] https://github.com/dotnet/efcore/issues/27975
- [ ] https://github.com/dotnet/efcore/issues/28433
- [ ] https://github.com/dotnet/efcore/issues/28434
- [ ] https://github.com/dotnet/efcore/issues/28436
- [ ] https://github.com/dotnet/efcore/issues/28438
- [ ] https://github.com/dotnet/efcore/issues/28439
- [ ] https://github.com/dotnet/efcore/issues/28511
- [ ] https://github.com/dotnet/efcore/issues/28571
- [ ] https://github.com/dotnet/efcore/issues/33676
Hope to solve this "epic" problem soon.It's been waiting for years