Преобразование .NET Enum в GraphQL EnumerationGraphType - PullRequest
1 голос
/ 08 мая 2019

Как мне преобразовать перечисление в EnumerationGraphType, который использует GraphQL?Вот пример, чтобы проиллюстрировать то, о чем я говорю:

public enum MeetingStatusType
{
    Tentative,
    Unconfirmed,
    Confirmed,
}
public class MeetingDto
{
    public string Id { get; set; }
    public string Name { get; set; }
    public MeetingStatusType Status { get; set; }
}
public class MeetingStatusEnumType : EnumerationGraphType<MeetingStatusType>
{
    public MeetingStatusEnumType()
    {
        Name = "MeetingStatusType";
    }
}
public class MeetingType : ObjectGraphType<MeetingDto>
{
    public MeetingType()
    {
        Field(m => m.Id);
        Field(m => m.Name, nullable: true);
        Field<MeetingStatusEnumType>(m => m.Status); // Fails here
     }
}

Очевидно, что это не работает, потому что нет неявного преобразования из MeetingStatusType в MeetingStatusEnumType, В документации модели, которые они отображали, полагались бы непосредственно на MeetingStatusEnumType, но не представляется целесообразным вводить зависимость от GraphQL для чего-то вроде ваших типов доменов и объектов.Я чувствую, что мне не хватает мучительно простого способа зарегистрировать это поле, но я не могу понять это ради своей жизни.Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 09 мая 2019

Похоже, я не должен был пытаться использовать перегрузку выражений для отображения полей.Вместо этого, похоже, решена проблема:

Field(e => e.Id);
Field(e => e.Name, nullable: true);
Field<MeetingStatusEnumType>("meetingStatus", resolve: e => e.Source.Status);
...