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.

Install-Package GraphQL.RepoDb.SqlServer -Version
dotnet add package GraphQL.RepoDb.SqlServer --version
<PackageReference Include="GraphQL.RepoDb.SqlServer" Version="" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add GraphQL.RepoDb.SqlServer --version
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: GraphQL.RepoDb.SqlServer,"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install GraphQL.RepoDb.SqlServer as a Cake Addin
#addin nuget:?package=GraphQL.RepoDb.SqlServer&version=

// Install GraphQL.RepoDb.SqlServer as a Cake Tool
#tool nuget:?package=GraphQL.RepoDb.SqlServer&version=
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

- Provide RepoDb extension meethod QueryBulkResultsByIdAsync() which enalbes high performance retrieval of very large result sets in bulk based on int Id values; this safely alleviates the limitation of max 2100 parameter bindings on SqlCmd when using Contains() expressions.

     Prior Releases Notes:
     - 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.
     - 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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated 51 5/13/2021 79 4/27/2021 49 4/26/2021 134 12/18/2020 136 12/11/2020 214 12/6/2020 124 11/17/2020 133 11/17/2020 159 11/6/2020