Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="request"></param>
        /// <param name="fields"></param>
        /// <returns></returns>
        private static string GetQueryMultipleTextInternal <TEntity>(QueryMultipleRequest request,
                                                                     IEnumerable <Field> fields)
            where TEntity : class
        {
            var statementBuilder = EnsureStatementBuilder(request.Connection, request.StatementBuilder);

            return(statementBuilder.CreateQuery(new QueryBuilder(),
                                                request.Name,
                                                fields,
                                                request.Where,
                                                request.OrderBy,
                                                request.Top,
                                                request.Hints));
        }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 /// <typeparam name="TEntity"></typeparam>
 /// <param name="request"></param>
 /// <returns></returns>
 internal static string GetQueryMultipleText <TEntity>(QueryMultipleRequest request)
     where TEntity : class
 {
     if (cache.TryGetValue(request, out var commandText) == false)
     {
         var fields = GetActualFields(request.Connection,
                                      request.Name,
                                      request.Fields,
                                      request.Transaction);
         commandText = GetQueryMultipleTextInternal <TEntity>(request, fields);
         cache.TryAdd(request, commandText);
     }
     return(commandText);
 }
Example #3
0
        /// <summary>
        /// Gets a command text from the cache for the query-multiple operation.
        /// </summary>
        /// <typeparam name="TEntity">The type of the target entity.</typeparam>
        /// <param name="request">The request object.</param>
        /// <returns>The cached command text.</returns>
        public static string GetQueryMultipleText <TEntity>(QueryMultipleRequest request)
            where TEntity : class
        {
            var commandText = (string)null;

            if (m_cache.TryGetValue(request, out commandText) == false)
            {
                var statementBuilder = EnsureStatementBuilder(request.Connection, request.StatementBuilder);
                commandText = statementBuilder.CreateQuery(queryBuilder: new QueryBuilder <TEntity>(),
                                                           where : request.Where,
                                                           orderBy: request.OrderBy,
                                                           top: request.Top,
                                                           hints: request.Hints);
                m_cache.TryAdd(request, commandText);
            }
            return(commandText);
        }
Example #4
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        internal static async Task <string> GetQueryMultipleTextAsync <TEntity>(QueryMultipleRequest request,
                                                                                CancellationToken cancellationToken = default)
            where TEntity : class
        {
            if (cache.TryGetValue(request, out var commandText) == false)
            {
                var fields = await GetActualFieldsAsync(request.Connection,
                                                        request.Name,
                                                        request.Fields,
                                                        request.Transaction,
                                                        cancellationToken);

                commandText = GetQueryMultipleTextInternal <TEntity>(request, fields);
                cache.TryAdd(request, commandText);
            }
            return(commandText);
        }
Example #5
0
        /// <summary>
        /// Gets a command text from the cache for the query-multiple operation.
        /// </summary>
        /// <typeparam name="TEntity">The type of the target entity.</typeparam>
        /// <param name="request">The request object.</param>
        /// <returns>The cached command text.</returns>
        internal static string GetQueryMultipleText <TEntity>(QueryMultipleRequest request)
            where TEntity : class
        {
            var commandText = (string)null;

            if (m_cache.TryGetValue(request, out commandText) == false)
            {
                var statementBuilder = EnsureStatementBuilder(request.Connection, request.StatementBuilder);
                var fields           = GetActualFields(request.Connection, request.Name, request.Fields, request.Transaction);
                commandText = statementBuilder.CreateQuery(new QueryBuilder(),
                                                           request.Name,
                                                           fields,
                                                           request.Where,
                                                           request.OrderBy,
                                                           request.Top,
                                                           request.Hints);
                m_cache.TryAdd(request, commandText);
            }
            return(commandText);
        }