【发布时间】:2019-07-25 10:30:54
【问题描述】:
我看到很多基于flutter sqfLite 的代码使用(TableName)sCompanion 而不是(TableName)s。
使用这个比前者有什么优势?
【问题讨论】:
标签: sqlite flutter datatables companion-object sqflite
我看到很多基于flutter sqfLite 的代码使用(TableName)sCompanion 而不是(TableName)s。
使用这个比前者有什么优势?
【问题讨论】:
标签: sqlite flutter datatables companion-object sqflite
假设您的表的名称是 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 只为有限的字段赋值。
【讨论】: