[英]read and write data to Database simultaneously in flutter
这个问题与 DB 关系不大,而与一般编程有关。
所以我的颤振应用程序中有两个模型:
现在的事情是ReminderModel
包含一个List<SingleReminderModel>
。 ReminderModel
和SingleReminderModel
中的每一项SingleReminderModel
包含它们唯一的int
id。
现在我不能重复 ID,因为新 ID 只会覆盖与旧 ID 关联的数据。 所以我创建了一个名为IdModel
的新模型。 在我的数据库中,我保存了IdModel
列表。
所以我需要的是同时将数据保存在数据库中并检索它,以便我可以检查保存的值。
接下来我有两个方法需要调用addReminderToDb()
和scheduleAlarm()
,我猜这些方法的名称是不言自明的。
Store.instance.setSingleId(id); //saves data to database
Store.instance.getIdData(); // retrieves the List<int>
最后这是我的onSave()
方法:
void onSave(
int? _day,
DateTime? _workStartTime,
DateTime? _workEndTime,
Duration? _frequency,
Duration? _breakPeriod,
) {
String? _dayName = TimeUtil().returnDayName(_day!);
DateTime? workStartTime = TimeUtil().getNextDate(_workStartTime, _day);
DateTime? workEndTime = TimeUtil().getNextDate(_workEndTime, _day);
Duration? workHour = TimeUtil().returnWorkHour(workStartTime, workEndTime);
List<DateTime> listOfFrequency = TimeUtil().returnListAlarmTime(
start: workStartTime,
end: workEndTime,
frequency: _frequency!,
breakPeriod: _breakPeriod!,
);
List<SingleReminderModel> singleReminders = [];
for (int i = 0; i < listOfFrequency.length; i++) {
SingleReminderModel singleReminderModel = SingleReminderModel(
singleReminderId: i,
alarmStartAt: listOfFrequency[i],
);
singleReminders.add(singleReminderModel);
}
ReminderModel? reminder = ReminderModel(
id: 3, // hardcoded id
dayName: _dayName,
workStartTime: _workStartTime,
workEndTime: _workEndTime,
workHour: workHour,
singleReminderModel: singleReminders,
frequency: _frequency,
breakPeriod: _breakPeriod,
);
scheduleAlarm(singleReminders);
addReminderToDB(reminder);
}
重新表述我的问题:
我需要在 IdModel 中保存每个 SingleReminderModel 和 ReminderModel 的 id,同时调用addReminderToDb
和scheduleAlarm()
ID 生成应由您正在使用的数据库提供程序处理并从同一管道中检索回来,以便它永远不会被复制。
所以理想情况下你的 onSave 应该返回由数据库提供者生成的实际 id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.