Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }