save method

Future<OrmMigrationRecord> save({
  1. bool returning = true,
})
inherited

Persists the model using the active resolver and returns the stored copy.

Implementation

Future<TModel> save({bool returning = true}) async {
  final def = expectDefinition();
  final resolver = _resolveResolverFor(def);
  final repository = _repositoryFor(def, resolver);
  final pkValue = _primaryKeyValue(def);
  List<TModel> persisted;

  if (def.primaryKeyField == null || pkValue == null) {
    persisted = await repository.insertMany(<TModel>[_self()]);
  } else {
    persisted = await repository.upsertMany(<TModel>[_self()]);
  }

  final result = persisted.isNotEmpty ? persisted.first : _self();
  _syncFrom(result, def, resolver);
  return result;
}