首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不工作/被忽略的Moor_flutter限制()方法

不工作/被忽略的Moor_flutter限制()方法
EN

Stack Overflow用户
提问于 2020-03-03 08:33:45
回答 2查看 680关注 0票数 1

我正在使用sqlite数据库使用颤动包来实现这个目的。我一直在尝试将limit方法应用于某个查询,但它不起作用。在limit方法中,我解析int _limit参数值以及可选的offset: int _offset参数值。

我没有得到任何错误,我也不知道为什么这不起作用。请看下面的代码。

代码语言:javascript
运行
复制
Stream<List<PersonWithProducts>> watchAllPersons(int _limit, int _offset) {
    return (select(persons)
          ..orderBy(
            [
              (t) =>
                  OrderingTerm(expression: t.created, mode: OrderingMode.desc),
              (t) => OrderingTerm(expression: t.name),
            ],
          )..limit(_limit, offset: _offset))
        .join(
          [
            leftOuterJoin(products, products.guest_person_id.equalsExp(persons.id)),
          ],
        )
        .watch()
        .map((rows) => rows.map(
              (row) {
                return PersonWithProuducts(
                  person: row.readTable(persons),
                  product: row.readTable(products),
                );
              },
            ).toList());
  }

备注表中的20记录更多。当我调用函数(首先,从数据库表中获取数据而不是指定的限制)时,就好像忽略了limit()方法。

参见下面的代码,这里是我调用上述函数的地方

代码语言:javascript
运行
复制
int limit = 5;
int offset = 0;

return StreamBuilder(
      stream: personDao.watchAllPersons(limit, offset),
      builder: (context, AsyncSnapshot<List<PersonWithProducts>> snapshot) {
        final persons = snapshot.data ?? List();
        // print('snapshot data: ${snapshot.data}');
        if (snapshot.hasData) {
          return ListView.builder(
            itemCount: persons.length,
            itemBuilder: (_, index) {
              final personInfo = persons[index];
              return _buildListItem(
                  personInfo, personDao);
            },
          );
        } else {
          return Center(
            child: AwesomeLoader(
              loaderType: AwesomeLoader.AwesomeLoader4,
              color: Colors.blue,
            ),
          );
        }
      },
    );

我想要的是watchAllPersons函数来根据指定的limit获取数据。我想让limit方法发挥作用。谢谢,真爱你。

EN

回答 2

Stack Overflow用户

发布于 2020-03-04 08:46:43

为什么你要给“限制”变量加上下划线--这意味着你把变量变成了私有变量。

票数 0
EN

Stack Overflow用户

发布于 2021-02-08 11:38:57

虽然已经有一段时间了,但我忘了提供解决方案,这是我发布的问题这里包中的一个错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60503062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档