flutter moor - 仅更新指定的列,无需自定义查询

Ash*_*ery 5 android dart dart-pub flutter flutter-moor

我只想更新指定的列,当我执行update(table).replace(model)它时会替换与主键对应的所有数据。如何在不编写自定义查询的情况下仅更新指定的列。

小智 4

你必须Insertable这样声明你的函数:

Future updateVisit(Insertable<Visit> visit) => update(visits).replace(visit);
Run Code Online (Sandbox Code Playgroud)

所以,当你调用一个函数时,你可以这样做:

visitDao.updateVisit(visit.copyWith(completed: newValue))
Run Code Online (Sandbox Code Playgroud)

或者

visitDao.updateVisit(VisitsCompanion(id: Value(visitId), checkOut: Value(DateTime.now())));
Run Code Online (Sandbox Code Playgroud)