Я видел много кодов на основе 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)();
}
Эта таблица состоит из идентификатора задачи, который автоматически увеличивается без необходимости ввода данных пользователем. Теперь, если бы мы использовали:
Task(
title: data,
);
вместо:
TasksCompanion(
title: Value(data),
);
Может возникнуть ошибка, говорящая о том, что идентификатор задачи требуется, но ему не присвоено какое-либо значение. Поэтому всякий раз, когда у нас есть значение автоинкремента или, скажем, вы не хотите заполнять каждое поле (taskid, title и т. д.). Затем мы используем компаньоны, чтобы присвоить значения только ограниченным полям.