【问题标题】:how to dynamically query database via web?如何通过网络动态查询数据库?
【发布时间】:2014-05-22 08:54:48
【问题描述】:

你能推荐一个可以通过网络查询数据的框架吗?

要求:

  1. ORM 功能 - 我希望模型在服务器和客户端的表示不会依赖。 例如:假设服务器将以下模型返回给客户端层:事务(firstName,lastName,description,amount)。在 dal 层中,它的保存方式如下: Customer(Id, fName, lName, address) , Transaction(id, CustomerId, description, amount)

  2. 选择编写自己的查询提供程序(例如:HiveQL、SQL 等)。

我曾尝试使用以下框架(但似乎不支持第一个需求):

  1. JayData: http://jaydata.org/
  2. breezejs: http://www.breezejs.com/

提前致谢。

【问题讨论】:

    标签: java node.js odata breeze business-intelligence


    【解决方案1】:

    Breeze 确实提供了此功能,但您需要编写将 OData 查询转换为您选择的服务器实现的查询的服务器端代码。我们已经为不同的服务器/数据库技术提供了此代码的多个实现,并计划在未来做更多。

    迄今为止,我们已经针对具有 Entity Framework 和 NHibernate ORM 的 .NET 服务器以及针对具有 MongoDB 后端的 Node 服务器进行了此操作。我们还有其他开发人员致力于 Ruby 服务器实现。如果您想自己编写,您可能应该查看 Breeeze/MongoDB 源代码以了解这是如何完成的。

    或者,如果您选择的服务器技术已经拥有 OData 提供程序,那么 Breeze 可以与其通信。

    【讨论】:

      【解决方案2】:

      OData确实提供了一种通过web查询数据库的方法,比如

      GET http://myservice/Products?$filter=Id gt 3 and contains(Name,'abc')
      GET http://myservice/Products?$select=Id,Name,Provider&$orderby=ManufactureDate desc
      

      这里有一些 odata 示例 https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v4/。在控制器中,您可以使用您喜欢的任何框架/提供程序从持久性中检索数据。

      如果你想使用实体框架,请关注这个:https://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v3/ODataActionsSample/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-25
        • 1970-01-01
        • 1970-01-01
        • 2013-01-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多