Отказ от ответственности: это работает, но не уверен, почему и если это правильное решение.
По некоторым причинам кажется, что ЛЮБАЯ модель / тип, который содержитсписок не может быть разрешен с помощью лямбды.
Поле () из сборки .NET GraphQL имеет следующую подпись.
#region Assembly GraphQL, Version=2.4.0.0, Culture=neutral, PublicKeyToken=null
// GraphQL.dll
#endregion
public FieldType Field(Type type, string name, string description = null, QueryArguments arguments = null, Func<ResolveFieldContext<TSourceType>, object> resolve = null, string deprecationReason = null);
Теперь эти параметры разрешаются из выражения lamda EXCEPT он показывается, когда задействован List / ListGraphType, тогда вам нужно явно указать параметры.
Примечание PModel - это не список, но он содержит список.
Поэтому я изменил его на:
public class IPType : ObjectGraphType<IPModel>
{
public IPType()
{
Field(x => x.iD);
Field(x => x.fullName);
Field(x => x.email);
Field<PModel>("PWS"); //NOTE:replaced lamda above with string value for name
}
}
Я отправил кросс на github graphql-dotner и получил там это решение, которое мне нравится больше.Credit: bogdancice
Попробуйте сделать это следующим образом: Поле (x => x.PWS, nullable: true, тип: typeof (PType));