website/src/docs/hotchocolate/v16/integrations/marten.md
The HotChocolate.Data package generally works with any LINQ provider that provides an IQueryable<T>. However, Marten requires special handling. Pagination and projections work out of the box, but filtering and sorting need LINQ expressions translated into a format that the Marten LINQ provider can process. This integration provides custom configurations for that purpose.
You can find a sample project in Hot Chocolate Examples.
Install the HotChocolate.Data.Marten package:
Register the Marten filtering convention on the schema builder:
builder
.AddGraphQL()
.AddQueryType<Query>()
.AddMartenFiltering();
Register the Marten sorting convention on the schema builder:
builder
.AddGraphQL()
.AddQueryType<Query>()
.AddMartenSorting();
Projections work out of the box with Marten. No custom configuration is needed.
Pagination works out of the box with Marten. No custom configuration is needed.