Exemple #1
0
        /// <summary>
        /// Adds a criterion to the criteria.
        /// </summary>
        /// <param name="criterionPattern">String specifying the criterion e.g. 'ent.PropertyName = {0}'
        /// where:
        /// - it is assumed that ent is the alias assigned to the root entity being queried.
        /// - {0} indicates the position where the parameter will be inserted. The parameter name will be automatically assigned.</param>
        /// <param name="parameterValue">The parameter value.</param>
        public void AddParameterisedCriterion(string criterionPattern, object parameterValue)
        {
            var queryParamName = "p" + FilterParameters.Count.ToString();

            FilterClauses.Add(string.Format(criterionPattern, ":" + queryParamName));
            FilterParameters.Add(queryParamName, parameterValue);
        }
Exemple #2
0
        /// <summary>
        /// Copies all the <paramref name="criteria"/>'s FilterClauses and FilterParameters to this
        /// FilterCriteria.
        /// </summary>
        /// <param name="criteria"></param>
        public void AppendCriteria([NotNull] FilterCriteria criteria)
        {
            if (criteria.FilteringMethod != this.FilteringMethod)
            {
                throw new Exception("The filtering method used is incompatible and may cause problems due to differences in syntax.");
            }

            FilterClauses.AddRange(criteria.FilterClauses);

            foreach (var param in criteria.FilterParameters)
            {
                FilterParameters.Add(param.Key, param.Value);
            }
        }