Как динамически создавать EnumerationGraphTypes с помощью GraphQL - PullRequest
0 голосов
/ 21 мая 2019

Я хочу реализовать сортировку в моих запросах, но я не хочу создавать жестко EnumerationGraphType для каждого моего класса, чтобы узнать, по какому полю следует сортировать.Я использую C # с GraphQL для .NET.

Я пытался использовать шаблоны и пытался передать список OrderByFieldEnum a, содержащий возможные значения перечисления.

Это мой тип графика, что я хотел бы сделать динамический как-то:

public class OrderByGraphType : ObjectGraphType<OrderBy>
{   
    public OrderByGraphType()
    {
        Field<OrderByFieldEnum>().Name("OrderBy"); // This is the field that I'd like to build dynamically, from a List<string>
        Field<OrderDirectionTypeEnum>().Name("OrderDirection").Resolve(context => context.Source.OrderDirection);
    } 
}

// The enum that should be built dynamically
public class OrderByFieldEnum : EnumerationGraphType
{
    public OrderByFieldEnum(string graphTypeName, List<string> possibleValues)
    {
        Name = graphTypeName; 

        if (possibleValues != null)   
        {    
            foreach (var option in possibleValues)
            {
                AddValue(option.ToUpper(), "Possible sorting value", option);
            }
        }
    }
}

Это, очевидно, не работает.GraphQL не может построить свою схему таким образом.У кого-нибудь есть решение?

...