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