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());
        }
示例#2
0
        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);
        }