我有几个Expression<Func<User,bool>>
共享属性的表达式。例如,
Expression<Func<User, bool>> e1 =
(User u) => u.IsActive && u.Group != "PROCESS" && u.Name != null;
Expression<Func<User, bool>> e2 =
(User u) => u.IsActive && u.Group != "PROCESS" && u.Name != "A";
Expression<Func<User, bool>> e3 =
(User u) => u.IsActive && u.Group != "PROCESS" && u.Name != "B";
有没有一种简单的方法可以将变量放入u.IsActive && u.Group != "PROCESS"
变量中并在 e1、e2 和 e3 中使用它?编辑:我仍然想要同一棵树。
似乎我可以通过使用Expression.Lambda<Func<User, bool>>(BinaryExpression.AndAlso(
etc 构建表达式来做到这一点......但不是简化我的代码,而是让它更难阅读。