【问题标题】:graphql-dotnet VS graphql-net - Which library is useful for fetching/writing data to/from DBgraphql-dotnet VS graphql-net - 哪个库可用于从数据库中获取/写入数据
【发布时间】:2018-08-31 11:03:15
【问题描述】:

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

在浏览 .NET 的 GraphQL 库时,我发现了 2 个库 - graphql-dotnetgraphql-net,在 GraphQL 网站上被推荐(链接:@987654321 @)

看来(如果我错了,请纠正我):

  1. graphql-dotnet (https://github.com/graphql-dotnet/graphql-dotnet) - 这个库只支持内存中的数据
  2. graphql-net (https://github.com/ckimes89/graphql-net) - 如果我们想处理已存储在 DB 中的数据,此库非常适用。

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

【问题讨论】:

标签: graphql github-graphql


【解决方案1】:

我是 Hot Chocolate 的贡献者之一。

您可以使用您在其中提到的两个框架。

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

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

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

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

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

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

【讨论】:

  • 嘿,我目前对 GraphQL 非常陌生,想知道在 GraphQL-dotnet 上使用 Hot Chocolate 是否有任何缺点?我考虑使用 Hot Chocolate 的主要原因是代码优先方法,其中模型的所有属性都加载到图形类型中,然后您可以进一步指定并忽略属性等等。还有一些其他的小东西,比如 ErrorBuilder 看起来很棒。您是否偶然对这两个框架进行了基准测试?由于这两个框架都依赖于 asp.net 核心,因此应该不会有太大的区别。非常感谢您的意见。
  • @ArturK。我们还为热巧克力提供模式拼接。您基本上可以使用 Hot Chocolate 将来自各种 GraphQL 服务器的模式拼接在一起。 hotchocolate.io/docs/stitching
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-17
    • 2018-05-06
    • 2020-04-29
    • 2019-11-21
    • 2020-08-14
    • 2019-03-24
    • 2017-03-19
    • 2022-01-25
    相关资源
    最近更新 更多