public void Lookup(ParameterLookupContext context)
        {
            var  methodParameters = context.MethodInfo.GetParameters();
            Type betweenType      = typeof(BetweenParameter);

            for (int i = 0; i < methodParameters.Length; i++)
            {
                var methodParameter = methodParameters[i];
                if (methodParameter.ParameterType != betweenType)
                {
                    continue;
                }

                BetweenParameter value = context.Values[i] as BetweenParameter;
                if (value == null)
                {
                    return;
                }

                string lowerCaseParaNameBegin = string.Format("{0}{1}", methodParameter.Name, Constant.PARAMETER_SUFFIX_BETWEEN_BEGIN).ToLower();
                string lowerCaseParaNameEnd   = string.Format("{0}{1}", methodParameter.Name,
                                                              Constant.PARAMETER_SUFFIX_BETWEEN_END).ToLower();

                context.Description.Parameters
                .Where(x => x.Key.ToLower() == lowerCaseParaNameBegin)
                .First().Value.Value = value.Begin;
                context.Description.Parameters
                .Where(x => x.Key.ToLower() == lowerCaseParaNameEnd)
                .First().Value.Value = value.End;
            }
        }
        public void Lookup(ParameterLookupContext context)
        {
            SqlCommandDescription description = context.Description;
            MethodInfo            methodInfo  = context.MethodInfo;

            object[] values         = context.Values;
            var      parameterInfos = methodInfo.GetParameters();
            int      length         = parameterInfos.Length;

            for (int i = 0; i < length; i++)
            {
                var parameterInfo = parameterInfos[i];
                var value         = values[i];
                this.Fill(context.SqlCommandGenerator, description, GetParameterName(parameterInfo), parameterInfo.ParameterType, () => value);
            }
        }
        public void Lookup(ParameterLookupContext context)
        {
            var description = context.Description;
            var values      = context.Values;

            if (!description.Parameters.ContainsKey(Constant.PARAMETER_NAME_BEGIN_ROW_NUMBER))
            {
                return;
            }
            if (!description.Parameters.ContainsKey(Constant.PARAMETER_NAME_END_ROW_NUMBER))
            {
                return;
            }

            Paging paging = values.OfType <Paging>().FirstOrDefault();

            if (paging == null)
            {
                throw new PagingParameterMustBeGivenExpcetion();
            }
            description.Parameters[Constant.PARAMETER_NAME_BEGIN_ROW_NUMBER].Value = paging.PageIndex * paging.PageSize;
            description.Parameters[Constant.PARAMETER_NAME_END_ROW_NUMBER].Value   = (paging.PageIndex + 1) * paging.PageSize;
        }