/// <summary> /// Gets a command text from the cache for the inline-update 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 GetInlineUpdateText <TEntity>(InlineUpdateRequest 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.CreateInlineUpdate(queryBuilder: new QueryBuilder <TEntity>(), where : request.Where, fields: request.Fields); m_cache.TryAdd(request, commandText); } else { request.Where?.AppendParametersPrefix(); } return(commandText); }
/// <summary> /// Gets a command text from the cache for the <see cref="DbConnectionExtension.InlineUpdate{TEntity}(IDbConnection, object, QueryGroup, bool?, int?, IDbTransaction, ITrace, IStatementBuilder)"/> 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 GetInlineUpdateText <TEntity>(InlineUpdateRequest request) where TEntity : class { var commandText = (string)null; if (m_cache.TryGetValue(request, out commandText) == false) { var statementBuilder = (request.StatementBuilder ?? StatementBuilderMapper.Get(request.Connection?.GetType())?.StatementBuilder ?? new SqlDbStatementBuilder()); commandText = statementBuilder.CreateInlineUpdate(queryBuilder: new QueryBuilder <TEntity>(), where : request.Where, fields: request.Fields, overrideIgnore: request.OverrideIgnore); m_cache.TryAdd(request, commandText); } else { request.Where?.AppendParametersPrefix(); } return(commandText); }