dotnet add package GraphQL.RepoDb.SqlServer --version 13.0.0
NuGet\Install-Package GraphQL.RepoDb.SqlServer -Version 13.0.0
<PackageReference Include="GraphQL.RepoDb.SqlServer" Version="13.0.0" />
paket add GraphQL.RepoDb.SqlServer --version 13.0.0
#r "nuget: GraphQL.RepoDb.SqlServer, 13.0.0"
// Install GraphQL.RepoDb.SqlServer as a Cake Addin #addin nuget:?package=GraphQL.RepoDb.SqlServer&version=13.0.0 // Install GraphQL.RepoDb.SqlServer as a Cake Tool #tool nuget:?package=GraphQL.RepoDb.SqlServer&version=13.0.0
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.
|Product||Versions Compatible and additional computed target framework versions.|
|.NET||net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed.|
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
- Updated and Optimized now with HC v13 -- leveraging more out-of-the-box features, simplifying code, and improving performance.
- Update project to .NET 6.0 which is now the minimum version supported by HC v13.
- Implemented support for dynamic injection of the GraphQL RepoDb Mapper via Resolver parameters.
- The Field Middleware is now optimized to only resolve and inject IParamsContext or IGraphQLRepoDbMapper when it's actually requested in the signature of the resolver
- NOTE: There are some breaking changes as part of the simplification such as:
- .AsPreProcessedCursorSlice() is replaced by .ToGraphQLConnection() and you can now simply return a normal HC Connection<T> from your resolvers.
- .AsPreProcessedPageResults() is replaced by .ToGraphQLCollectionSegment() and you can now simply return a normal HC CollectionSegment<T> from your resolvers.
- Classes & Namespaces have been renamed from 'PreProcessing' to now 'ResolverProcessing'
Prior Releases Notes:
- Updated to latest version of HC v12.4.1
- Updated Demo projects to .Net 6.0 and Azure Functions v4.
- Bump RepoDB (Sql Server) version to v1.1.4 stable
- Upgraded to now support HotChocolate version 12 with v12.0.1 and synced Nuget Version
- Bump HotChocolate version to v11.3.8 (latest v11 version before jumping to v12) and synced Nuget Version
- Added support for raw sql where filtering with Parameterization for complex where filtering and field processing (e.g. LOWER(), TRIM() functions on fields, or Full Text Search via CONTAINS(), FREETEXT(), etc.).
- Fix bug with TotalCount not returning when pagination or other filtering returns no results.
- Potential Breaking Change: Fixed method signatures to all consistently support specifying table name; this might potentially have some breaking changes to method signatures, but functionality is compatible once signatures are corrected.
- 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.
- 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 ResolverProcessingExtensions 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.