参数 'id' 是必需的。当 id 是自增时
The parameter 'id' is required. when id is Autoincrement
当我尝试创建一个数据对象以保存在我的数据库中时,它警告我说需要 ID。但是,它应该在添加到数据库时由 moor 自动创建,因为它被标记为自动增量。我的 table 代码是
class Countdowns extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get name => text().withLength(min: 1, max: 100)();
DateTimeColumn get date => dateTime()();
}
可以忽略此警告吗?如果没有,我该怎么办?
我创建数据对象的代码是
countdown = Countdown(date: initialDate);
我会在用户为倒计时输入名称时填写名称字段。
根据 Moor 文档 - 具有默认值的列(通过自动增量或使用默认值)在生成的数据中仍标记为@required 类。这是因为它们代表一整行,每一行都有这些值。在表示部分行时使用随播广告,例如插入或更新。
因此您可以使用 Companions 获取 inserting/updating 数据。随播广告也是自动生成的,您可以使用 TableNameCompanion.insert() 构造函数插入数据。
您可以在官方沼泽文档上阅读更多内容。 https://moor.simonbinder.eu/docs/getting-started/advanced_dart_tables/
Moor github 上还有一个官方问题,作者在其中解释了 @required
自动增量的原因。 https://github.com/simolus3/moor/issues/548
当我尝试创建一个数据对象以保存在我的数据库中时,它警告我说需要 ID。但是,它应该在添加到数据库时由 moor 自动创建,因为它被标记为自动增量。我的 table 代码是
class Countdowns extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get name => text().withLength(min: 1, max: 100)();
DateTimeColumn get date => dateTime()();
}
可以忽略此警告吗?如果没有,我该怎么办? 我创建数据对象的代码是
countdown = Countdown(date: initialDate);
我会在用户为倒计时输入名称时填写名称字段。
根据 Moor 文档 - 具有默认值的列(通过自动增量或使用默认值)在生成的数据中仍标记为@required 类。这是因为它们代表一整行,每一行都有这些值。在表示部分行时使用随播广告,例如插入或更新。
因此您可以使用 Companions 获取 inserting/updating 数据。随播广告也是自动生成的,您可以使用 TableNameCompanion.insert() 构造函数插入数据。
您可以在官方沼泽文档上阅读更多内容。 https://moor.simonbinder.eu/docs/getting-started/advanced_dart_tables/
Moor github 上还有一个官方问题,作者在其中解释了 @required
自动增量的原因。 https://github.com/simolus3/moor/issues/548