我已经看到许多flutter sqfLite
基于代码使用(TableName)sCompanion
而不是(TableName)s
.
与前者相比,使用它有什么优势?
我已经看到许多flutter sqfLite
基于代码使用(TableName)sCompanion
而不是(TableName)s
.
与前者相比,使用它有什么优势?
假设您的表的名称是 Task。
class Tasks extends Table{
IntColumn get taskid => integer().autoIncrement()();
TextColumn get title => text().withLength(min:1,max:20)();
}
该表由 taskid 组成,它自动递增,无需用户输入。现在,如果我们要使用:
Task(
title: data,
);
代替:
TasksCompanion(
title: Value(data),
);
可能会出现错误,提示 taskid 是必需的,但没有给出任何值。因此,无论何时我们有一个 autoIncrement 值,或者假设您不想填写每个字段(taskid、title 等)。然后我们使用 Companions 只为有限的字段赋值。