问题描述
我看到我们可以在 dotNetCore 上使用 Hot Chocolate 并且我通常使用它。
GraphQL/Query.cs
public class Query
{
public IQueryable<TestTbl> GetList([Service] myDbContext context)
{
return context.TestTbl;
}
}
这是我的startup.cs
在ConfigureServices services.AddGraphQLServer().AddQueryType();
在配置
app.UseEndpoints(endpoints =>
{
endpoints.MapGraphQL();
}
{
"errors": [
{
"message": "Unexpected Execution Error","locations": [
{
"line": 2,"column": 3
}
],"path": [
"testTbl"
],"extensions": {
"message": "Can't create component 'markaz.EntityFrameworkCore.markazDbContext' as it has dependencies to be satisfied.\r\n\r\n'markaz.EntityFrameworkCore.markazDbContext' is waiting for the following dependencies:\r\n- Service 'Microsoft.EntityFrameworkCore.DbContextOptions`1[[markaz.EntityFrameworkCore.markazDbContext,markaz.EntityFrameworkCore,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null]]' which was not registered.\r\n","stackTrace": " at Castle.MicroKernel.Handlers.DefaultHandler.AssertNotWaitingForDependency()\r\n at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext context,Boolean requiresDecommission,Boolean instancerequired,Burden& burden)\r\n at Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext context,Boolean instancerequired)\r\n at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler,Type service,Arguments additionalArguments,IReleasePolicy policy,Boolean ignoreParentContext)\r\n at Castle.MicroKernel.DefaultKernel.Castle.MicroKernel.IKernelInternal.Resolve(Type service,Arguments arguments,Boolean ignoreParentContext)\r\n at Castle.MicroKernel.DefaultKernel.Resolve(Type service,Arguments arguments)\r\n at Castle.Windsor.MsDependencyInjection.ScopedWindsorServiceProvider.GetServiceInternal(Type serviceType,Boolean isOptional)\r\n at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetrequiredService[T](IServiceProvider provider)\r\n at HotChocolate.Execution.Processing.MiddlewareContext.Service[T]()\r\n at lambda_method1153(Closure,IResolverContext )\r\n at HotChocolate.Types.FieldMiddlewareCompiler.<>c_displayClass3_0.<<CreateResolverMiddleware>b_0>d.MoveNext()\r\n--- End of stack trace from prevIoUs location ---\r\n at HotChocolate.Execution.Processing.ResolverTask.ExecuteResolverPipelineAsync(CancellationToken cancellationToken)\r\n at HotChocolate.Execution.Processing.ResolverTask.TryExecuteAsync(CancellationToken cancellationToken)"
}
}
],"data": {
"testTbl": null
}
}
知道我该怎么做吗?
解决方法
您需要设置数据库上下文。查看我们的教程,我们将引导您完成入门以及如何与 EF 集成。