Queries

To perform a query you need to have a root Query object that is an ObjectGraphType. Queries should only fetch data and never modify it. You can only have a single root Query object. By default queries are executed in parallel.

query { hero { id name } }

If you have only a single query, you can use shorthand syntax.

hero { id name }

To provide an Operation name for your query, you add it after the query keyword. An Operation name is optional if there is only a single operation in the request.

query MyHeroQuery { hero { id name } }

You can also provide that operation name to the ExecutionOptions.

var schema = new Schema { Query = new StarWarsQuery() }; var json = await schema.ExecuteAsync(_ => { _.OperationName = "MyHeroQuery"; _.Query = @" query MyHeroQuery { hero { id name } } "; });
public class StarWarsQuery : ObjectGraphType { public StarWarsQuery() { Field<DroidType>("hero") .Resolve(context => new Droid { Id = "1", Name = "R2-D2" }); } }