KeyNotFoundException в GraphQL .net Entity Framework - PullRequest
0 голосов
/ 06 апреля 2019

Я использую ниже с двумя DbContext с:

https://github.com/SimonCropp/GraphQL.EntityFramework

Я получаю эту ошибку:

GraphQL.ExecutionError: Ошибка при попыткеразрешить проект.

System.Collections.Generic.KeyNotFoundException: Указанный ключ 'Models.Master.Project' отсутствует в словаре.

в System.Collections.Generic.Dictionary 2.get_Item(TKey key)<br> at IncludeAppender.AddIncludes[TItem,TSource](IQueryable 1 запрос, ResolveFieldContext 1 context) in C:\\projects\\graphql-entityframework\\src\\GraphQL.EntityFramework\\IncludeAppender.cs:line 20<br> at GraphQL.EntityFramework.EfGraphQLService.<>c__DisplayClass21_0 2.d.MoveNext () в C: \ projects \ graphql-entityframework \ src \ GraphQL.EntityFramework \ EfGraphQLService_Queryable.cs: строка 80

Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение

в GraphQL.Instrumentation.MiddlewareResolver.Resolve (контекст ResolveFieldContext)
в GraphQL.Execution.ExecutionStrategy.ExecuteNodeAsync (контекст ExecutionContext, узел ExecutionNode)

Конец трассировки стека внутренних исключений

** Когда я пытаюсь добавить две модели из двух DbContext s следующим образом в 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 - это Проект.который является отдельным на арендатора.Так что это ProjectDbContext (у которого нет Project модели).

1 Ответ

1 голос
/ 02 июня 2019

это исправлено в версии 6 https://github.com/SimonCropp/GraphQL.EntityFramework/blob/master/doco/configuration.md#multiple-dbcontexts

Дополнительный текст, чтобы преодолеть глупые 30 знаков мин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...