我正在使用System.Linq.Expressions.Expression类动态构建SQL"WHERE"子句.它适用于简单的子句,例如添加"PhaseCode = X"子句,我执行以下操作:
var equalTarget = Expression.Constant(phaseCode, typeof(int?));
var phaseEquals = Expression.Equal(Expression.PropertyOrField(projParam, "PhaseCode"), equalTarget);
Run Code Online (Sandbox Code Playgroud)
但是,现在我正在尝试构建一个表达式,如果已将项目分配给特定组,则该表达式将返回记录.项目和集团有多对多的关系.如果没有表达式树,我会按如下方式执行:
db.Projects.Where(p => .... && p.GroupsAssigned.Any(g => g.ID == groupId))
Run Code Online (Sandbox Code Playgroud)
但是,我似乎找不到用Expression类表达的方法.实际上有两件事我想不通:
任何帮助是极大的赞赏.