Beispiel #1
0
 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)));
     }
 }
Beispiel #2
0
        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);
                }
            }
        }