/// <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)); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }