如何通过网络动态查询数据库?

时间:2014-05-22 08:54:49

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

您能推荐一个支持通过网络查询数据的框架吗?

要求:

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

  2. 编写我自己的查询提供程序的选项(例如:HiveQL,SQL& etc)。

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

    1. JayData: http://jaydata.org/
    2. breezejs: http://www.breezejs.com/
    3. 提前致谢。

2 个答案:

答案 0 :(得分:1)

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

到目前为止,我们已经为包含Entity Framework和NHibernate ORM的.NET服务器以及使用MongoDB后端的Node服务器执行了此操作。我们还有其他开发人员在开发Ruby服务器。如果你想自己编写,你应该看看Breeeze / MongoDB源代码来看看它是如何完成的。

或者,如果您选择的服务器技术已经有OData提供商,那么Breeze可以与之交谈。

答案 1 :(得分:0)

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

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/