/// <summary> /// 与逻辑运算 /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <param name="expLeft">表达式1</param> /// <param name="propertyName">属性名称</param> /// <param name="value">属性值</param> /// <param name="operator">操作符</param> /// <exception cref="MissingFieldException"></exception> /// <exception cref="NotSupportedException"></exception> /// <returns></returns> public static Expression <Func <T, bool> > And <T>(this Expression <Func <T, bool> > expLeft, string propertyName, object value, SQLOperator @operator) { var expRight = SQLPredicate.Create <T>(propertyName, value, @operator); return(expLeft.And(expRight)); }
/// <summary> /// 与逻辑运算 /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <typeparam name="TKey">属性类型</typeparam> /// <param name="expLeft">表达式1</param> /// <param name="keySelector">属性选择</param> /// <param name="value">值</param> /// <param name="operator">操作符</param> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="NotSupportedException"></exception> /// <returns></returns> public static Expression <Func <T, bool> > And <T, TKey>(this Expression <Func <T, bool> > expLeft, Expression <Func <T, TKey> > keySelector, TKey value, SQLOperator @operator) { if (keySelector is null) { throw new ArgumentNullException(nameof(keySelector)); } var expRight = SQLPredicate.Create(keySelector, value, @operator); return(expLeft.And(expRight)); }
/// <summary> /// 转换为谓词筛选表达式 /// </summary> /// <exception cref="NotSupportedException"></exception> /// <returns></returns> public Expression <Func <T, bool> > ToPredicate() => SQLPredicate.Create <T>(Member, Value, Operator);