考虑到它具有来自 WHERE 子句的过滤器,我一直在尝试更改连接对象的返回属性。然而,这是不可能的,因为 WHERE 子句返回一个 QueryExpression 类,而不是具有返回属性方法的 Query 类。
我按照下面的代码试过了:
var query = Query<Obj1>(context)
..where((o) => o.state).equalTo(state);
query.join(set: (q) => q.objs2)
..where((a) => a.state).equalTo(state)
..returningProperties((a) => [a.id, a.description, a.answer]);
var results = await query.fetch();
我能够执行以下查询:
var query = Query<Obj1>(context)
..where((o) => o.state).equalTo(state);
Query<Obj2> subQuery = query.join(set: (q) => q.objs2)
..where((a) => a.state).equalTo(state)
..returningProperties((a) => [a.id, a.description, a.answer]);
var results = await query.fetch();
我的问题是,还有其他方法可以做到这一点吗?我所做的是正确的吗?是否有可能有一种更简单或更直接的方式将这些条款放在一起?