public virtual async Task <int> AddAsync <T>(T entity, string[] ignoreParameters) { var query = $"INSERT INTO {typeof(T).Name} ({_dbHelper.ConstructColumsForInsert<T>(ignoreParameters)}) VALUES ({_dbHelper.ConstructParamsForInsert<T>(ignoreParameters)});SELECT LAST_INSERT_ID();"; var result = await _dapper.QueryAsync <int>(_dbconnection, query, entity, _openTransaction); return(result.Single()); }
public Task <IEnumerable <OrderDto> > GetOrders() { var sql = @"SELECT * FROM Orders AS o INNER JOIN Payments AS p ON o.Order_id = p.Order_id INNER JOIN Costs AS c ON o.Order_id = c.Order_id"; return(_dapperWrapper.QueryAsync <OrderDto, PaymentDto, CostDto, OrderDto>(sql, (order, payment, cost) => { order.Payment = payment; order.Cost = cost; return order; }, splitOn: "Order_id")); }
public async Task <IEnumerable <IEvent> > GetAsync(string aggregateId, string aggregateType, int fromVersion) { IEnumerable <string> result; using (var conn = _sqlConnectionFactory.GetReadConnection()) { conn.Open(); result = await _dapper.QueryAsync <string>(conn, _settings.GetSql, new { AggregateId = aggregateId, _settings.ApplicationName, AggregateType = aggregateType, FromVersion = fromVersion }, _settings.CommandType).ConfigureAwait(false); } var events = result.Select(serializedEvent => JsonConvert.DeserializeObject <IEvent>(serializedEvent, JsonSerializerSettings)); return(events); }