ensureStored method
FutureOr
ensureStored(
- O o, {
- Transaction? transaction,
- TransactionOperation? operation,
override
Implementation
@override
FutureOr<dynamic> ensureStored(
o, {
Transaction? transaction,
TransactionOperation? operation,
}) {
checkNotClosed();
var id = getID(o, entityHandler: entityHandler);
if (id == null || entityHasChangedFields(o)) {
return _ensureStoredImpl(o, transaction, operation);
} else {
if (isTrackingEntity(o)) {
return ensureReferencesStored(
o,
transaction: transaction,
).resolveWithValue(id);
}
return existsID(id, transaction: transaction).resolveMapped((exists) {
if (!exists) {
return _ensureStoredImpl(o, transaction, operation);
} else {
return ensureReferencesStored(
o,
transaction: transaction,
).resolveWithValue(id);
}
});
}
}