如果没有带有 id else 的记录sembast在 flutter 中使用库更新,如何实现插入?我尝试了以下。
Future updateOrInsert(User user) async {
final result = await update(user);
if(result == 0){
insert(user);
}
}
Future update(User user) async {
final finder = Finder(filter: Filter.byKey(user.id));
final result = await _userStore.update(await _db, user.toMap(), finder: finder);
return result;
}
Future insert(User user) async {
await _userStore.add(await _db, user.toMap());
}
Run Code Online (Sandbox Code Playgroud)
它工作正常。这是正确的解决方案还是有其他直接的 sembast API 可用?
您应该使用Record.put给定的 id 添加或更新记录。
Future updateOrInsert(User user) async {
await _userStore.record(user.id).put(_db, user.toMap());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |