All notable changes to this project are documented here.
- New
CD.GenericRepositoryprimary package that includesCD.Resultstransitively. - .NET 8, .NET 9 and .NET 10 multi-targeting.
IReadRepository<TEntity>and explicitQuery,GetAsync,ListAsync,ExistsAsync, andCountAsyncAPIs.- Safe
RemoveByIdAsyncandRemoveFirstAsyncoperations. - Database-side projection and ordered
PagedList<T>queries. - Composite-key deletion through
RemoveByKeyAsync. EfUnitOfWork<TContext>, transaction boundaries, and one-line dependency injection registration.- Structured, transport-independent Result errors with stable codes and classifications.
- Optional
CD.Results.AspNetCoremappings for controllers and Minimal APIs. - Public API compatibility analysis that rejects unreviewed surface changes.
- SQLite-backed integration tests, CI, package validation, symbols, and automated release workflow.
- Nullable return types now reflect missing entities correctly.
- Read operations are no-tracking by default.
- Cancellation tokens are forwarded by all async queries.
- Exception details are hidden by
ToResultAsyncunless an explicit mapping function is supplied. - HTTP status handling moved out of
CD.Resultsand intoCD.Results.AspNetCore. - Release publishing uses short-lived NuGet credentials through trusted publishing.
- The 2.x repository method names. Compatibility members remain for this major release.
- The
CD.Generic.Repositorypackage ID. It now acts as a migration package forCD.GenericRepository.
- Removing a missing entity no longer passes
nullto EF Core. - Duplicate predicates and ignored cancellation tokens in async queries.
- Broken namespaces and dependency registration in the sample API.
- Compatibility-package publishing no longer attempts to upload an empty symbol package.