1

我用这些关系设置了 2 个类,故障只有 1 台设备,而设备有很多故障。

@Entity()
class Equipment {
  int? id;
  String adminNumber;
...

  @Backlink()
  final faults = ToMany<Fault>();
...
}

@Entity()
class Fault {
  /// Let objectbox handle ID assigning
  int? id;
  String uuid;
...

  final equipment = ToOne<Equipment>();
...
}

我正在尝试利用反向链接来查找所有与故障有关的设备(因为可以在没有故障的情况下创建设备)。

但我似乎无法访问设备的故障属性

final testQuery = _localDbBaseService.faultsBox.query()
  ..backlink(Equipment_.faults, Equipment_.faults.notNull());
final test = testQuery.build().find();

return test;

“没有为类型‘Equipment_’定义吸气剂‘故障’。”

我很确定我有向后查询,但我只是想弄清楚如何正确使用反向链接。我知道我可以通过查询所有故障然后查询所有设备并像那样过滤它们来完成这个过程,但我觉得反向链接应该以这种方式运行......还是我完全误解了它的意图?我似乎找不到很多与反向链接相关的示例,尤其是在 Dart 中

4

1 回答 1

3

哦,伙计,橡皮鸭方法又有用了,我觉得自己像个白痴。无论如何,对于其他偶然发现在颤动中使用反向链接的人,您确实查询了“父”对象

final builder = _localDbBaseService.equipmentBox
    .query();
builder.backlink(Fault_.equipment, Fault_.equipment.notNull());
final query = builder.build();
final items = query.find();

return items;
于 2021-10-27T05:34:54.803 回答