Aqueduct ORM 多重嵌套连接
Aqueduct ORM multiple nested joins
我正在使用 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);
这给了我 A
和 B
但只有 c1
。我如何编写查询以便同时获得 c2
和 c3
?
加入方法returns一个新的查询对象。此查询是原始查询的子查询,并控制连接 table 上查询的参数。也就是说,您可以将 where 条件应用于适用于联接 table 的新查询对象。在您的情况下,您希望首先将新查询对象分配给一个变量,然后设置每个连接。我现在在用手机,所以结果可能不太好:
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”。
是
我正在使用 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);
这给了我 A
和 B
但只有 c1
。我如何编写查询以便同时获得 c2
和 c3
?
加入方法returns一个新的查询对象。此查询是原始查询的子查询,并控制连接 table 上查询的参数。也就是说,您可以将 where 条件应用于适用于联接 table 的新查询对象。在您的情况下,您希望首先将新查询对象分配给一个变量,然后设置每个连接。我现在在用手机,所以结果可能不太好:
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”。
是