有没有一种方法可以在Azure MobileServices -nct中进行计数查询



我正在开发一个使用具有离线同步的Azure移动应用程序的应用程序(Android),并且我正在尝试获取有关如何创建查询的任何信息,以使MobileserVicessynctable(即查询到本地查询)SQLITE数据库)。很高兴看到SQL查询和Azure orm等效,例如:

SELECT ... FROM ... WHERE id = "1" : Query query = QueryOperations.field("id").eq(val("1"));
SELECT ... FROM ... WHERE id <> "1" : Query query = QueryOperations.field("id").ne(val("1"));
SELECT COUNT("id") FROM ...  - ???
SELECT ... FROM ... ORDER BY ... DESC - ???

等等。我已经检查了教程和文档,但是教程仅显示简单的用途。如果使用MobileserViceTable(无线同步),语法就像Linq一样。但是,如果使用MobileServicessynctable,语法并不明显。是否有人使用MS Azure Mobile Backend创建了移动应用程序?

我查看了源代码&amp;Anzure移动应用程序SDK的Javadocs for Android客户端,然后我发现类MobileServiceSyncTable中没有任何方法,QueryOperations&amp;Query直接支持某些功能,例如计数行,订购等。

如果要在检索数据时要获取计数号,则可以使用类Query的方法includeInlineCount()将InlineCount属性添加到结果中。

否则,似乎有一种解决行或其他查询的方法,它来自Android Client的单元测试源代码,它直接在Android上为SQLITE构建SQL查询以获取您想要的数据,以获取数据因为离线同步功能用于在SQLite和Azure移动应用程序之间同步。

希望它有帮助。


根据我的经验,以下方法计算行的方法。

  1. 使用带有后端逻辑的自定义API进行计数。
  2. 使用includeInlineCount方法与大尺寸表的分页。

我找到了创建有序查询的方法:如果查询与Where子句:

SELECT * FROM <TableName> WHERE <field1>=<value> ORDER BY <field2> DESC :
QueryOperations.field("field1").eq(val("value")).orderBy("<field2>", QueryOrder.Descending);

如果有简单有序查询(获取所有行):

SELECT * FROM <TableName> ORDER BY <fieldName> DESC :
QueryOperations.field("id").ne(val("")).orderBy("<fieldName>", QueryOrder.Descending);

这很脏,但是有效。本教程中描述了建筑查询。虽然这是关于MobileServicable(无线同步),但语法是相似的。

但是关于计数的问题仍然开放。

相关内容

  • 没有找到相关文章

最新更新