C# GraphQL字段的参数重载
我正在尝试使用.Net实现实现GraphQL服务器- 在服务器上,我希望我的模式如下C# GraphQL字段的参数重载,c#,.net,graphql,graphql-dotnet,C#,.net,Graphql,Graphql Dotnet,我正在尝试使用.Net实现实现GraphQL服务器- 在服务器上,我希望我的模式如下 public class StarWarsQuery { public IEnumerable<Droid> Droids() { return droidRepository.GetAllDroids(); } public Droid Droids(string name) { return droidRepository
public class StarWarsQuery
{
public IEnumerable<Droid> Droids()
{
return droidRepository.GetAllDroids();
}
public Droid Droids(string name)
{
return droidRepository.GetDroidByName(name);
}
}
public class Droid
{
string name { get; set;}
}
{
Droids{
name
}
}
或
的当前实现似乎忽略了重载,生成的图形不包含字符串参数,第二个查询失败
有人知道当前版本是否可以做到这一点吗?
如果没有,我需要查看的扩展点在哪里?约定不支持方法重载,因为在GraphQL中没有表示方法-据我所知,不能有两个具有相同名称和不同签名的字段 如果您将代码更改为以下内容,则应该可以:
public class StarWarsQuery
{
public IEnumerable<Droid> Droids()
{
return droidRepository.GetAllDroids();
}
public Droid Droid(string name)
{
return droidRepository.GetDroidByName(name);
}
}
public class Droid
{
string name { get; set;}
}
是的,经过调查你是对的。当前的graphql规范不允许在服务器上实现我想要的类型。
public class StarWarsQuery
{
public IEnumerable<Droid> Droids()
{
return droidRepository.GetAllDroids();
}
public Droid Droid(string name)
{
return droidRepository.GetDroidByName(name);
}
}
public class Droid
{
string name { get; set;}
}
{
droids{ # note also the lowercase 'd' here
name
}
droid(name:"super droid"){
name
}
}