예제 #1
0
 /// <summary>
 /// Prepare the command for the current parent object and context.
 /// This will set all command parameters according to parameter setup
 /// </summary>
 /// <param name="parentObject">Current parent object</param>
 /// <param name="context">current Context</param>
 /// <returns>The prepared command with assigned command parameters</returns>
 public IDbCommand Prepare(ParentObject parentObject, IDictionary <string, object> context)
 {
     for (int i = 0; i < parameterExpressions.Count; i++)
     {
         object value = parameterExpressions[i](parentObject, context);
         CreateDbParameterAndAssignValue(command, value, prefix.ToRealPrefix() + PARAM_PREFIX + i, null);
     }
     return(command);
 }
예제 #2
0
        internal string ReplaceParameter(Match match, List <Func <ParentObject, IDictionary <string, object>, object> > parsedParameterExpression, CommandParameterPrefix prefix)
        {
            var newParameterIndex = parsedParameterExpression.Count;
            var expression        = RemovePlaceholderPattern(match.Value);

            if (expression.StartsWith(PREFIX_LOOKUP_COLUMN))
            {
                parsedParameterExpression.Add(CreateLookUpFunc(expression.Remove(0, PREFIX_LOOKUP_COLUMN.Length)));
            }
            if (expression.StartsWith(PREFIX_LOOKUP_CONTEXT))
            {
                parsedParameterExpression.Add(CreateContextLookUpFunc(expression.Remove(0, PREFIX_LOOKUP_CONTEXT.Length)));
            }
            return(prefix.ToRealPrefix() + PARAM_PREFIX + newParameterIndex);
        }
예제 #3
0
        internal string ReplaceParameter(Match match, List <Func <ParentObject, IDictionary <string, object>, object> > parsedParameterExpression, CommandParameterPrefix prefix, IDbCommand dbCommand)
        {
            var    newParameterIndex = parsedParameterExpression.Count;
            var    expression        = RemovePlaceholderPattern(match.Value);
            string dbTypeName        = null;

            if (expression.StartsWith(PREFIX_LOOKUP_COLUMN))
            {
                var parts = ParseDbTypeName(expression.Remove(0, PREFIX_LOOKUP_COLUMN.Length));
                dbTypeName = parts.Item2;
                parsedParameterExpression.Add(CreateLookUpFunc(parts.Item1));
            }
            if (expression.StartsWith(PREFIX_LOOKUP_CONTEXT))
            {
                var parts = ParseDbTypeName(expression.Remove(0, PREFIX_LOOKUP_CONTEXT.Length));
                dbTypeName = parts.Item2;
                parsedParameterExpression.Add(CreateContextLookUpFunc(parts.Item1));
            }

            var paramName = prefix.ToRealPrefix() + PARAM_PREFIX + newParameterIndex;

            CreateDbParameterAndAssignValue(dbCommand, null, paramName, dbTypeName);
            return(paramName);
        }