假设我希望能够通过指定用户 ID或指定其他标识符(如电子邮件地址)来查询用户。
你如何构造根 Query 对象来接受它?
鉴于这种
public class MyQuery : ObjectGraphType
{
public MyQuery(IUserService userService)
{
Name = "Query";
Field<UserType>(
"user",
arguments: new QueryArguments(
new QueryArgument<IntGraphType>() { Name = "id" },
new QueryArgument<StringGraphType>() { Name = "email" }
),
resolve: context =>
{
int? id = context.GetArgument<int>("id");
if (id != null)
{
return userService.GetUserById(id);
}
string email = context.GetArgument<string>("email");
if (email != null)
{
return userService.GetUserByEmail(email);
}
return null;
}
);
}
}
这是正确的方法吗?如果在查询中没有找到参数,会context.GetArgument()
返回吗?null
或者提供两个参数是否QueryArguments
意味着查询需要两个参数?