Unions

Unions are a composition of two or more different types. To create such union type, you need to inherit from UnionGraphType and call the Type<TType> method on the all types that you want to include in this union.

public class CatOrDog : UnionGraphType { public CatOrDog() { Type<Cat>(); Type<Dog>(); } } public class Cat : ObjectGraphType<CatModel> { public Cat() { Field<StringGraphType>("name"); Field<BooleanGraphType>("meows"); } } public class Dog : ObjectGraphType<DogModel> { public Dog() { Field<StringGraphType>("name"); Field<BooleanGraphType>("barks"); } }

In this example CatOrDog type should implement ResolveType or both Cat and Dog types should implement IsTypeOf. Note that IsTypeOf is already implemented for ObjectGraphType<TSourceType> so in this example ResolveType is not used. For details about IsTypeOf and ResolveType see Interfaces.