如何使用 moor_flutter 包计算 sqlite db 表中的记录?

Muj*_*uje 7 dart flutter flutter-moor

如何使用moor_flutter包计算表中的所有行并获得行数?

我在这里看到了 moor_flutter 官方文档但我找不到我要找的东西。

根据使用 moor_flutter 包时 crud 函数的相似性,我希望它会像下面的函数一样,但它也不起作用。

Future<int<Person>> countPersons() => count(persons).get();
Run Code Online (Sandbox Code Playgroud)

Idu*_*ool 6

我想出了一种方法来查找表行数。这是带有基本注释的完整解决方案,

//Create expression of count
var countExp = persons.id.count();

//Moor creates query from Expression so, they don't have value unless you execute it as query.  
//Following query will execute experssion on Table.
final query = selectOnly(persons)..addColumns([countExp]);
var result = await query.map((row) => row.read(countExp)).getSingle();
Run Code Online (Sandbox Code Playgroud)

请注意,我使用了selectOnly而不是select因为我对除 Count 之外的任何列都不感兴趣。