public IEnumerable <T> Query <T>(SqlWriterResult result, IDbConnection connection, IDbTransaction transaction, bool asTracked = false)
        {
            if (asTracked)
            {
                return(this.Tracked(
                           ((NoFetchDelegate <T>) this.noFetchTrackingCalls[typeof(T)])(connection, result.Sql, result.Parameters, transaction)));
            }

            return(((NoFetchDelegate <T>) this.noFetchFkCalls[typeof(T)])(connection, result.Sql, result.Parameters, transaction));
        }
Beispiel #2
0
        private static async Task InsertAndSetIdAsync <T, TKey>(
            ISessionState sessionState,
            SqlWriterResult sqlQuery,
            string sqlAndReturnId,
            IMap <T> map,
            T entity) where T : class, new()
        {
            var idResult = await(await sessionState.GetConnectionAsync()).QueryAsync <TKey>(
                sqlAndReturnId,
                sqlQuery.Parameters,
                await sessionState.GetTransactionAsync());

            map.SetPrimaryKeyValue(entity, idResult.Single());
        }
Beispiel #3
0
        private static void InsertAndSetId <T, TKey>(
            ISessionState sessionState,
            SqlWriterResult sqlQuery,
            string getLastInsertedId,
            IMap <T> map,
            T entity) where T : class, new()
        {
            var idResult = sessionState.GetConnection()
                           .Query <TKey>(
                sqlQuery.Sql + ";" + getLastInsertedId,
                sqlQuery.Parameters,
                sessionState.GetTransaction());

            map.SetPrimaryKeyValue(entity, idResult.Single());
        }
        public async Task <IEnumerable <T> > QueryAsync <T>(
            SqlWriterResult sqlQuery,
            IDbConnection connection,
            IDbTransaction transaction,
            bool asTracked = false)
        {
            if (asTracked)
            {
                var results =
                    await
                        ((NoFetchDelegateAsync <T>) this.asyncNoFetchTrackingCalls[typeof(T)])(connection, sqlQuery.Sql, sqlQuery.Parameters, transaction);
                return(this.Tracked(results));
            }

            var asyncNoFetchFkResults =
                await((NoFetchDelegateAsync <T>) this.asyncNoFetchFkCalls[typeof(T)])(connection, sqlQuery.Sql, sqlQuery.Parameters, transaction);

            return(asyncNoFetchFkResults);
        }