GithubHelp home page GithubHelp logo

aeagle / graph-ql-poco Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 1.0 34 KB

Experimental Dapper based SQL resolver for GraphQL.NET to allow building a GraphQL schema from a POCO model

License: MIT License

C# 99.05% TSQL 0.95%
graphql graphql-net dapper sql dotnet-core

graph-ql-poco's Introduction

graph-ql-poco

An experiment with GraphQL.Net and a custom Dapper based SQL resolver which defines the GraphQL schema and queries a DB based on introspection of the model.

Given the model:

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Order> Orders { get; set; } = new List<Order>();
}

public class Order
{
    public int Id { get; set; }
    public string Name { get; set; }
    public Customer Customer { get; set; }
}

And the setup:

services.SetupGraphQLSchema(
    schema => schema
        .DefaultResolver(
            new SQLResolver(
                () => new SqlConnection(
                    @"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=GraphQLTest;Integrated Security=SSPI"
                )
            )
        )
        .Add<Customer>(x => x
            .EntityConfig(e => e.Table("Customers").Key(f => f.Id))
        )
        .Add<Order>(x => x
            .EntityConfig(e => e.Table("Orders").Key(f => f.Id))
        )
);

Allows the following GraphQL query:

customers {
  id
  name
  orders {
    id
    name
  }
}

or alternatively:

orders {
  id
  name
  customer {
    id
    name
  }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.