我们什么时候在 Flutter 的表格中使用 Companion?

When do we use Companion in tables in Flutter?

我看到许多基于 flutter sqfLite 的代码使用 (TableName)sCompanion 而不是 (TableName)s

与前者相比,使用它有什么优势?

假设您的 table 的名字是 Task。

class Tasks extends Table{
 IntColumn get taskid => integer().autoIncrement()(); 
 TextColumn get title => text().withLength(min:1,max:20)();

}

此 table 由 taskid 组成,无需用户输入即可自动递增。现在如果我们使用:

Task(
 title: data,
);

而不是:

TasksCompanion(
 title: Value(data),
);

可能会出现错误,指出任务 ID 是必需的,但没有给出任何值。 因此,无论何时我们有一个自动增量值,或者假设您不想填写每个字段(taskid、title 等)。然后我们使用Companions只给有限的字段赋值。