A set of extensions for working with HotChocolate GraphQL and RepoDb as the data access micro-orm without dependency on IQueryable. This enables fully encapsulated control over SQL queries in every way within a Service or Repository layer of your application. This extension pack provides a significantly simplified facade to access critial elements such as Selections/Projections, Sort arguments, & Paging arguments with support for mapping them to Models using built in RepoDb functionality. It also leverages RepoDb to provide a generic, Relay spec compatible, cursor pagination/slice query api for Sql Server.
See the version list below for details.
Install-Package GraphQL.RepoDb.SqlServer -Version 18.104.22.168
dotnet add package GraphQL.RepoDb.SqlServer --version 22.214.171.124
<PackageReference Include="GraphQL.RepoDb.SqlServer" Version="126.96.36.199" />
paket add GraphQL.RepoDb.SqlServer --version 188.8.131.52
#r "nuget: GraphQL.RepoDb.SqlServer, 184.108.40.206"
// Install GraphQL.RepoDb.SqlServer as a Cake Addin #addin nuget:?package=GraphQL.RepoDb.SqlServer&version=220.127.116.11 // Install GraphQL.RepoDb.SqlServer as a Cake Tool #tool nuget:?package=GraphQL.RepoDb.SqlServer&version=18.104.22.168
- Breaking change but simplified the RepoDB Custom extension methods for CursorPaging and OffsetPaging to take in IRepoDbCursorPagingParams and IRepoDbOffsetPagingParams respectively instead of discrete values.
- This helps minimizes the risk of the issue arising from the Optimization to not rely on TotalCount; it introduced a non-intuitive breaking change in the ReboDB Custom extensions whereby the new 'IsTotalCountRequested' param from the GraphQLParamsContext must be explicitly provided.
- This also makes future enhancements easier and the method signatures more maintainable going forward.
- Also need to highlight another potential issue from the code optimization: Now the Cursor and Offset paging arguments are fully optional and both will default with consistent behavior to retrieve all data.
- Therefore Any enforcement to require paging args or limit the data if they are not provided must now be done by the consuming code; this helps the library be less opinionated and flexible but may now open prior uses to selecting more data than intended; this may be improved with configuration value in a future release.
Prior Releases Notes:
- Bugfix where Count could be incorrect due to potential null values skipped by Sql Server Count() aggregation over specific field vs '*'.
- Bump HotChocolate version to v11.2.2 stable and sync Nuget version.
- Bump RepoDB (Sql Server) version to v1.1.3 stable
- Optimized paging algorithm to eliminate the dependency on TotalCount for computing HasPreviousPage/HasNextPage paging metadata.
- Optimized TotalCount query to now only be executed when requested (e.g. User requests totalCount in the GraphQL query).
- Add full RepoDB support for OffsetPaging (e.g. using Skip/Take instead of Batch Query (Page Size/Page Number).
- Some code cleanup and optimizations.
- Sync version with the latest Pre-processing Extensions.
- Add support (and fix consistency) with CommandTimeout for all query methods.
- Add .ConfigureAwait(false) to all awaits for performance.
- Bump version to HotChocolate v11.0.4.
- Bump to HotChocolate v11.0.2 and sync with PreProcessingExtensions issue fix release.
- Bump to HotChocolate v11.0.1 which now resolves a bug that we helped identify with interfaces in the initial release of v11.0.0.
- Fix issue with Sort/OrderBy field not working if not also part of Selection. OffsetPaging is not working, it's still work in progress. But this release provides ability to trace log out some details for the query, execution time, etc. Also improves support for cancellation token throughout DB calls and minor optimizations and cleanup.
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.