Releases: seesharper/DbReader
4.2.1
Change Log
4.2.1 (02/24/2026)
Full Changelog
Merged Pull Requests
Use AsyncLocal instead of ThreadStatic for SqlStatement.Current (02/24/2026) #79 (seesharper)
Summary
SqlStatement.Currentwas annotated with[ThreadStatic], which stores values per OS thread- With
async/await, continuations can resume on a different thread pool thread (especially after.ConfigureAwait(false)), causingSqlStatement.Currentto benullor stale in the async read path - Replaced with
AsyncLocal<string>, which flows throughExecutionContextand correctly tracks the value acrossawaitboundaries - Public API is unchanged — callers read/write
SqlStatement.Currentthe same way
Test plan
- All 225 existing tests pass
- Verify async reads (
ReadAsync,ReadWithoutNavigationPropertiesAsync) correctly use the cache key across thread switches
🤖 Generated with Claude Code
4.2.0
Change Log
4.2.0 (02/19/2026)
Full Changelog
Merged Pull Requests
Use ReadAsync in the async read path (02/19/2026) #78 (seesharper)
Summary
- Added
ReadAsync<T>extension method onDbDataReaderinDataReaderExtensions - Added
ReadWithNavigationPropertiesAsync<T>andReadWithoutNavigationPropertiesAsync<T>that useDbDataReader.ReadAsyncinstead of the synchronousRead - Updated
DbConnectionExtensions.ReadAsync<T>to call the new async read path instead of the synchronousdataReader.Read<T>()
Test plan
- All 225 existing tests pass
🤖 Generated with Claude Code
4.1.0
Change Log
4.1.0 (12/14/2025)
Full Changelog
Merged Pull Requests
Read single (12/14/2025) #77 (seesharper)
4.0.1
Change Log
4.0.1 (04/15/2025)
Full Changelog
Merged Pull Requests
Deferred command disposal (04/15/2025) #74 (seesharper)
This PR ensures that the command is not disposed until the reader is disposed
4.0.0
Change Log
4.0.0 (03/16/2025)
Full Changelog
Merged Pull Requests
Rename to DbClient (03/16/2025) #73 (seesharper)
3.0.0
Change Log
3.0.0 (03/11/2025)
Full Changelog
Merged Pull Requests
Added DbReader.Tracking (03/11/2025) #72 (seesharper)
This PR adds support for tracking changes made to an object.
See the the readme for more information
2.7.1
Change Log
2.7.1 (01/10/2025)
Full Changelog
Merged Pull Requests
Fixed default value when there value is NOT DbNull (01/10/2025) #71 (seesharper)
2.7.0
Change Log
2.7.0 (11/19/2024)
Full Changelog
Merged Pull Requests
Added WithDefaultValue (11/19/2024) #70 (seesharper)
2.6.1
Change Log
2.6.1 (06/02/2024)
Full Changelog
Merged Pull Requests
Added configureCommand (06/02/2024) #68 (seesharper)
2.6.0
Change Log
2.6.0 (09/12/2023)
Full Changelog
Merged Pull Requests
Added support for "camel humps" for simple properties (09/12/2023) #67 (seesharper)