Я пытался изменить возвращенные свойства объединенного объекта, учитывая, что у него есть фильтр из предложения WHERE.Однако это было невозможно напрямую, потому что предложение WHERE возвращает класс QueryExpression, а не класс Query с методом returningProperties.
Я пытался в соответствии с приведенным ниже кодом:
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();
У меня вопрос, есть ли другой способ сделать это?Что я сделал правильно?Можно ли иметь более простой или более прямой способ объединения этих предложений?