【发布时间】:2020-09-17 09:07:02
【问题描述】:
您好,我有以下查询类:
public class haProgrammesQuery
{
[UseFiltering]
public async Task<IQueryable<User>> GetUsers([Service] haProgrammesContext Context) => Context.Users;
[UseFiltering]
[UseFirstOrDefault]
public async Task<IQueryable<User>> GetUserById([Service] haProgrammesContext Context, string Id) {
return Context.Users.Where(u => u.UserId.ToString() == Id);
}
}
使用查询在操场上运行良好:
query {
users{
userId
name
}
}
但查询
query{
userById(id:"fd8b8670-60cf-451a-8fea-0fc0c69cde3a")
{
name
}
}
调用 UserById 方法(使用断点检查),但 string Id 参数为空,因此返回到 Playground 的响应为空。
我还使用了一个基本的 echo 方法来返回字符串参数,但它也收到了一个 null 参数,并且还使用了async Task<IQueryable<User>>(因为这个版本是,是的,我知道它没有使用等待)而且只是标准的IQueryable<User> 只是为了看看那里是否有任何东西 - 我错了什么?!
【问题讨论】:
-
不应该
Id是一个指导?除非 EF Core 足够聪明,可以忽略u.UserId.ToString(),否则这将导致全表扫描
标签: asp.net-core graphql hotchocolate