graphql-dotnet VS graphql-net - 哪个库对 fetching/writing 数据 to/from 数据库有用

graphql-dotnet VS graphql-net - Which library is useful for fetching/writing data to/from DB

我想将 GraphQL 集成到我现有的 ASP.NET 框架(带有 Entity Framework 4)应用程序中,该应用程序以 MSSQL Server 作为后端。

在浏览 .NET 的 GraphQL 库时,我发现了 2 个库 - graphql-dotnetgraphql-net,建议在GraphQL 网站(Link:http://graphql.org/code/#c-net

好像是(如有错误请指正):

  1. graphql-dotnet (https://github.com/graphql-dotnet/graphql-dotnet) - 这个库只支持内存数据
  2. graphql-net (https://github.com/ckimes89/graphql-net) - 如果我们想处理存储在数据库中的数据,这个库工作得很好。

有什么建议或更正吗?是否可以使用以前的 (即 graphql-dotnet) 库来执行 read/write to/from 数据库? 或者我应该改用 graphql-net 库吗?​​

我是 Hot Chocolate 的贡献者之一。

您可以使用此处提到的两个框架。

GraphQL-net 更专注于在 IQueryable 上构建 GraphQL 模式。

我会说 GraphQL-dotnet 是两种解决方案中更好的一种。

有支持 entity framework 映射到 GraphQL-dotnet 的集成,它们还提供对 DataLoader 的支持,这对于解决使用 GraphQL 从后端加载数据时的 N+1 问题很重要。

Hot Chocolate 是第三个为 .Net Core 和 .Net Framework 实现 GraphQL 的框架(也在 graphql.org 上列出)。

还支持DataLoader,还支持Entity Framework。对于感兴趣的人,我们在此处提供 Entity Framework 的精彩教程:

https://github.com/ChilliCream/graphql-workshop

好吧,在我们的项目中,我们决定使用 graphql-dotnet lib 从 API 服务和共享点列表中获取数据 - 因此,它是一种代理 WebAPI 服务。现在我们正在生产中,它运行良好,性能良好(除了从共享点列表获取数据,但这是 SharePoint 的问题 - 而不是 graphql-dotnet lib)。

顺便说一句,lib 本身比 graphql-net 更稳定,并且有很多活跃的贡献。

我们决定使用 graphql-dotnet lib 的另一个项目,或者我想说的组件也已发布。该组件允许您连接到数据库并轻松配置 GraphQL 方案(通过 json 文件)。已经实现了主要功能,例如:排序、分页和复杂过滤器。