public async Task <TResult> RawScalarQueryAsync <TResult>(string query, object param = default, Transaction transaction = default, CancellationToken cancellationToken = default) { using (var command = CommandDefinition.GetCommand(provider: _provider, connection: _dbConnection, commandText: query, param: param, transaction: transaction)) { return((TResult)(await CommandExecuter.ExecuteScalarQueryAsync(_dbConnection, command, cancellationToken))); } }
public async Task InsertAsync(TEntity item, Transaction transaction = default, CancellationToken cancellationToken = default) { using (var command = CommandDefinition.GetCommand(provider: _provider, connection: _dbConnection, transaction: transaction)) { var properties = CommandExecuter.GetProperticeWithAddParameters <TEntity>(_provider, _key, _keyIsAutoId, item, command); command.CommandText = DynamicQuery.Insert(_provider, _key, properties, item); var key = await CommandExecuter.ExecuteScalarQueryAsync(_dbConnection, command, cancellationToken); if (_keyIsAutoId) { var value = Convert.ChangeType(key, _key.PropertyType); _key.SetValue(item, value); } } }