public async Task ScopedDbContext()
    {
        using var database = await sqlInstance.Build();

        var dbContext = database.Context;

        await AddData(dbContext);

        var services = BuildServiceCollection();

        services.AddScoped(x => { return(database.Context); });

        EfGraphQLConventions.RegisterInContainer(
            services,
            userContext => (DependencyDbContext)userContext);
        using var provider = services.BuildServiceProvider();
        using var schema   = new DependencySchema(provider);
        var executionOptions = new ExecutionOptions
        {
            Schema      = schema,
            Query       = query,
            UserContext = dbContext,
            Inputs      = null
        };

        await ExecutionResultData(executionOptions);
    }
    public async Task ExplicitModel()
    {
        using (var database = await sqlInstance.Build())
        {
            var dbContext = database.Context;
            await AddData(dbContext);

            var services = BuildServiceCollection();

            EfGraphQLConventions.RegisterInContainer(
                services,
                userContext => (DependencyDbContext)userContext,
                ModelBuilder.Instance);
            using (var provider = services.BuildServiceProvider())
                using (var schema = new DependencySchema(provider))
                {
                    var executionOptions = new ExecutionOptions
                    {
                        Schema      = schema,
                        Query       = query,
                        UserContext = dbContext,
                        Inputs      = null
                    };

                    await ExecutionResultData(executionOptions);
                }
        }
    }
    public async Task TransientDbContext()
    {
        await using var database = await sqlInstance.Build();

        var dbContext = database.Context;

        await AddData(dbContext);

        var services = BuildServiceCollection();

        services.AddTransient(_ => database.Context);

        EfGraphQLConventions.RegisterInContainer(
            services,
            userContext => ((UserContextSingleDb <DependencyDbContext>)userContext).DbContext);
        await using var provider = services.BuildServiceProvider();
        using var schema         = new DependencySchema(provider);
        var executionOptions = new ExecutionOptions
        {
            Schema      = schema,
            Query       = query,
            UserContext = new UserContextSingleDb <DependencyDbContext>(dbContext),
            Inputs      = null
        };

        await ExecutionResultData(executionOptions);
    }
Ejemplo n.º 4
0
    public async Task ScopedDbContext()
    {
        await using var database = await sqlInstance.Build();

        var dbContext = database.Context;

        await AddData(dbContext);

        var services = BuildServiceCollection();

        services.AddScoped(x => database.Context);

        EfGraphQLConventions.RegisterInContainer(
            services,
            userContext => (DependencyDbContext)((Dictionary <string, object>)userContext)["dbContext"]);
        await using var provider = services.BuildServiceProvider();
        using var schema         = new DependencySchema(provider);
        var executionOptions = new ExecutionOptions
        {
            Schema = schema,
            Query  = query,
            Inputs = null
        };

        executionOptions.UserContext.Add("dbContext", dbContext);

        await ExecutionResultData(executionOptions);
    }