我目前正在开发一个基于 .NET 框架构建并使用 MySQL 数据库的遗留应用程序。我们正在将应用程序迁移到 GraphQL 和 .NET Core。我们需要使用现有的存储过程。因为,userid\DB-role 被传递到存储过程以在数据库级别过滤数据。
我已经使用 Entity Framework 使用 hotchocolate 为 GraphQL 创建了一个 POC。因为,我是 GraphQL 的新手,并且不知道如何将 userid\DB-role 与请求一起传递或在解析器中传递,所以我计划使用存储过程方法。因此,需要有关该主题的帮助。
您可以定义一个解析器并按照您喜欢的方式执行存储过程。
例如
services.AddGraphQLServer().AddQueryType<Query>();
public class Query
{
public async Task<User> GetUserByIdAsync(
[Service] AnyServiceFromTheSerivceProvider service,
Guid id,
CancellationToken ct) => await service.GetUserByIdAsync(id, ct);
}