我发现我们可以在dotNetCore上使用热巧克力,而且我通常会用它。
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, IReleasePolicy policy, 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
}
}知道我该怎么做吗?
发布于 2021-07-06 10:30:57
您需要设置DB上下文。看看我们的教程,在这里我们带您完成入门,以及如何与EF集成。
https://stackoverflow.com/questions/68268290
复制相似问题