Я использую ниже с двумя DbContext
s:
https://github.com/SimonCropp/GraphQL.EntityFramework
Я получаю эту ошибку:
GraphQL.ExecutionError: Error trying to resolve project.
System.Collections.Generic.KeyNotFoundException: The given key 'Models.Master.Project' was not present in the dictionary.
at System.Collections.Generic.Dictionary
2.get_Item(TKey key)
1 query, ResolveFieldContext
at IncludeAppender.AddIncludes[TItem,TSource](IQueryable1 context) in C:\\projects\\graphql-entityframework\\src\\GraphQL.EntityFramework\\IncludeAppender.cs:line 20
2.<b__0>d.MoveNext() in C:\projects\graphql-entityframework\src\GraphQL.EntityFramework\EfGraphQLService_Queryable.cs:line 80
at GraphQL.EntityFramework.EfGraphQLService.<>c__DisplayClass21_0End of stack trace from previous location where exception was thrown
at GraphQL.Instrumentation.MiddlewareResolver.Resolve(ResolveFieldContext context)
at GraphQL.Execution.ExecutionStrategy.ExecuteNodeAsync(ExecutionContext context, ExecutionNode node)End of inner exception stack trace
Когда я пытаюсь добавить две модели из двух DbContext
, как показано ниже в startup.cs
(далее, если я удалю вторую строку, она работает отлично. Но это мне нужно для моего второго DbContext
).
EfGraphQLConventions.RegisterInContainer(services, ProjectDataContextBuilder.ProjectModel); //This is creating issue as of now. wasn't issue when checked with my and your.
EfGraphQLConventions.RegisterInContainer(services, MasterDataContextBuilder.MasterModel);
DataContextBuilder
классы следующие:
static class MasterDataContextBuilder
{
static MasterDataContextBuilder()
{
using (var masterDataContext = InMemoryContextBuilder.Build<ecdiscoMasterContext>())
{
MasterModel = masterDataContext.Model;
}
}
public static IModel MasterModel;
}
static class ProjectDataContextBuilder
{
static ProjectDataContextBuilder()
{
using (var projectDataContext = InMemoryContextBuilder.Build<ecdiscoProjectContext>())
{
ProjectModel = projectDataContext.Model;
}
}
public static IModel ProjectModel;
}
Примечание: Ошибка. Проект является моделью MasterDbContext
.
Еще один DbContext
— Project. отдельно для каждого арендатора. Итак, это ProjectDbContext
(у которого нет Project
модели).
это исправлено в версии 6 https://github.com/SimonCropp/GraphQL.EntityFramework/blob/master/doco/configuration.md#multiple-dbcontexts
Некоторый дополнительный текст, чтобы преодолеть глупые 30 символов мин.