/// <summary> /// Gets the query condition to determine whether the field value equals <paramref name="value"/>. This field may has multiple values separated by <paramref name="separator"/>. /// </summary> /// <param name="field"></param> /// <param name="value"></param> /// <param name="separator"></param> /// <param name="parameterSelector"></param> /// <returns></returns> public static ISqlExpression EqualWhenMultiple(ISqlExpression field, string value, string separator, Func <string, ISqlExpression> parameterSelector) { if (field == null) { throw new ArgumentNullException("field"); } if (string.IsNullOrWhiteSpace(value)) { throw new ArgumentException("value is null or empty.", "value"); } if (string.IsNullOrWhiteSpace(separator)) { throw new ArgumentException("separator is null or empty.", "separator"); } return(field.Equal(parameterSelector(value)).Or(field.Like(parameterSelector(GetBeginLikeString(value + separator)))).Or(field.Like(parameterSelector(GetContainLikeString(separator + value + separator)))).Or(field.Like(parameterSelector(GetEndLikeString(separator + value))))); }