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