我们什么时候在 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只给有限的字段赋值。
我看到许多基于 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只给有限的字段赋值。