gpt4 book ai didi

dart - Aqueduct ORM 多重嵌套连接

转载 作者:行者123 更新时间:2023-12-03 03:39:55 24 4
gpt4 key购买 nike

我将 Aqueudct ORM 与数据模型一起使用,如下所示:

    A
| (one-one)
B
/ | \ (all many-one)
C C C

我的表格看起来像这样:

class _A {
B b;
}

class _B {
@Relate(#c1Ref)
C c1;
@Relate(#c2Ref)
C c2;
@Relate(#c3Ref)
C c3;
}

class _C {
ManagedSet<B> c1Ref;
ManagedSet<B> c2Ref;
ManagedSet<B> c3Ref;
}

我想写一个查询来获取大胖A,但我想不通。

到目前为止,我有:

final query = Query<A>(context)
..join(object: (a) => a.b)
//Note the non-cascading dot
.join(object: (b) => b.c1);

这给了我 AB 但只有 c1。我该如何编写查询,以便同时获得 c2c3

最佳答案

join 方法返回一个新的查询对象。此查询是原始查询的子查询,并控制连接表上查询的参数。也就是说,您可以将 where 条件应用于适用于连接表的新查询对象。在您的情况下,您希望首先将新查询对象分配给一个变量,然后设置每个连接。我现在在移动设备上,所以结果可能不太好:

  final query = Query<A>(context);
final bQuery = query.join(object: (a) => a.b)
..join(object: (b) => b.c1)
..join(object: ( b) => b.c2)
..join(object: (b) => b.c3);

请注意,您并没有真正将其放入变量中,但我这样做是为了说明这一点。您将在此处执行“query”,而不是“bQuery”。

关于dart - Aqueduct ORM 多重嵌套连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57746756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com