我们有现有的SQL Server数据库,我们正在使用C#。让我们的移动客户端发送一个graphql到服务器。我如何转换这个SQL,让我的客户端得到他期望的数据?将Graphql转换为SQL?
回答
GraphQL和SQL虽然听起来很相似,却解决了不同的问题。 SQL用于直接查询数据库。 GraphQL用于查询任何类型的数据源,例如数据库(通过SQL或客户端库),API和静态文件。 GraphQL可以与REST或ad-hoc API端点进行比较。
一个解决方案就是自己创建GraphQL实现。 GraphQL.org有很多关于如何实现和使用GraphQL服务器的很好的信息。如果这样做太多了,你可以从这个项目中捎带回来:GraphQL .NET
也可以考虑查看其他GraphQL实现,例如ApolloStack。如果您的GraphQL服务器与.NET服务器分开,您可以使用ApolloStack或其他Javascript GraphQL服务器来托管您的数据。
alex的问题很简单。如果客户端以graphql格式向我发送数据,如何获得我的数据已存在于我的SQL SERVER数据库中。这可能吗? – user960567
下面是一个使用Node.js从SQL获取的示例GraphQL服务器:https://github.com/apollostack/GitHunt-API/tree/master/api/sql – stubailo
Node.js在GraphQL生态系统中有更多的库,所以构建Node服务将为您提供更多选择。 [加入怪物](https://github.com/stems/join-monster)是一个试图从给定的GraphQL请求和模式定义生成SQL查询的库。 –
不,很遗憾,您无法将GraphQL转换为SQL。
如果您的客户端使用GraphQL向您发送请求,您别无选择,只能创建您的GraphQL服务器并从那里查询数据库。
GraphQL不是SQL。 SQL是数据库查询语言,GraphQL是从客户端到中间件的查询语言。
我建议你看看实现一个C#版本的Join Monster仓库,由
Andy Carlson编写。 https://github.com/stems/join-monster
它试图将客户端提供的GraphQL查询转换为最有效的可能SQL查询。它目前不支持多对多关系或联合类型(多态关联),但这些目标是存储库路线图的一部分。
感谢您的提及!加入Monster确实支持多对多的关系。你可以从中获得的数据是有限的,但目前正在通过。 –
我不知道!目前我真的很想使用它,但是我正在与Apollo服务器合作,所以我想我要么等到Apollo支持,要么可能有助于获得支持。 – AjaxLeung
- 1. GraphQL的SOAP转换
- 2. 将MS Access.adp转换为ASP.Net转换:DLookup转换为SQL
- 3. 将Linq转换为SQL DRY
- 4. 将Sql转换为Dql
- 5. 将Linq转换为SQL
- 6. 将SQL转换为函数
- 7. SQL - 将varchar转换为datetime
- 8. 将此Linq转换为SQL
- 9. 将sql转换为hql
- 10. 将Excel Formual转换为SQL
- 11. Sql - 将行转换为cloums
- 12. 将SQL转换为QueryOver()
- 13. 将INT转换为DATETIME(SQL)
- 14. 将LINQ转换为SQL
- 15. 将SQL转换为HQL
- 16. 将T-SQL转换为Linq
- 17. 将SQL Server转换为Oracle
- 18. 将SQL转换为DQL
- 19. SQL将行转换为列
- 20. SQL将行转换为列
- 21. SQL将行转换为列
- 22. 将SQL转换为HQL?
- 23. 将SQL转换为LINQ
- 24. 将SQL转换为LINQ
- 25. 将ORA_HASH转换为SQL Server
- 26. 将ArgoUML转换为SQL
- 27. 将json转换为石墨烯graphql响应
- 28. 将SQL语句转换为Linq-2-Sql
- 29. 将SQL查询转换为MS Access SQL
- 30. 将SQL Server 2012转换为SQL Azure
其中一个可能的灵魂可能是graphql.net +实体框架。 –
@ Manivannan.D.Sekaran任何示例 – user960567
您使用的是Entity Framework吗?请为您提供一个Graphql查询的例子,以便我可以给您一个确切的转换示例。 – Transcendent