3

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

在浏览 .NET 的 GraphQL 库时,我发现了 2 个库 - graphql-dotnetgraphql-net,它们在 GraphQL 网站上被推荐(链接: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 ) - 如果我们想处理存储在 DB 中的数据,这个库可以很好地工作。

有什么建议或更正吗?是否可以使用以前的(即 graphql-dotnet)库对数据库执行读/写操作?还是应该改用graphql-net库?

4

2 回答 2

16

我是热巧克力的贡献者之一。

您可以使用您在那里提到的两个框架。

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

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

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

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

它还支持DataLoader,也支持Entity Framework。对于感兴趣的人,我们在这里有一个很好的 Entity Framework 教程:

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

于 2019-02-06T20:23:04.193 回答
1

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

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

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

于 2019-02-26T14:29:19.493 回答