public void ConfigureServices(IServiceCollection services)
    {
        GraphTypeTypeRegistry.Register <Employee, EmployeeGraph>();
        GraphTypeTypeRegistry.Register <EmployeeSummary, EmployeeSummaryGraph>();
        GraphTypeTypeRegistry.Register <Company, CompanyGraph>();

        services.AddScoped(provider => DataContextBuilder.BuildDataContext());

        EfGraphQLConventions.RegisterInContainer(services, DataContextBuilder.Model);

        foreach (var type in GetGraphQlTypes())
        {
            services.AddSingleton(type);
        }

        services.AddGraphQL(options => options.ExposeExceptions = true).AddWebSockets();
        services.AddSingleton <ContextFactory>();
        services.AddSingleton <IDocumentExecuter, EfDocumentExecuter>();
        services.AddSingleton <IDependencyResolver>(
            provider => new FuncDependencyResolver(provider.GetRequiredService));
        services.AddSingleton <ISchema, Schema>();
        var mvc = services.AddMvc();

        mvc.SetCompatibilityVersion(CompatibilityVersion.Latest);
    }
示例#2
0
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddScoped(provider => DataContextBuilder.BuildDataContext());

        using (var myDataContext = DataContextBuilder.BuildDataContext())
        {
            EfGraphQLConventions.RegisterInContainer(services, myDataContext);
        }

        foreach (var type in GetGraphQlTypes())
        {
            services.AddSingleton(type);
        }

        services.AddSingleton <IDocumentExecuter, DocumentExecuter>();
        services.AddSingleton <IDependencyResolver>(
            provider => new FuncDependencyResolver(provider.GetRequiredService));
        services.AddSingleton <ISchema, Schema>();
        var mvc = services.AddMvc();

        mvc.SetCompatibilityVersion(CompatibilityVersion.Latest);
    }
 public MyDataContext BuildContext() => DataContextBuilder.BuildDataContext();