小编AJ1*_*J17的帖子

如何从两个表达式创建表达式AND子句

我正在尝试使用LINQ为我的视图创建一个where子句.

我能够创建单列where子句,我想现在创建多个列where子句..

我已经看到了在.Net 4及更高版本中实现的代码,但由于我必须使用.Net 3.5,我需要快速解决这个问题.所以我想做的是....

 Expression leftexp = {tag=>((tag.id=2)||(tag.id=3))}
 Expression rightexp = {tag=>((tag.uid="MU")||(tag.uid="ST"))}
Run Code Online (Sandbox Code Playgroud)

从我想创建的这两个表达式

 BinaryExpression be = {tag=>((tag.id=2)||(tag.id=3))} && 
                       {tag=>((tag.uid="MU")||(tag.uid="ST"))} 
Run Code Online (Sandbox Code Playgroud)

这样的东西,我可以传递给LINQ中的where子句.

我试着用Expression.And(leftexp,rightexp)

但得到了错误..

二进制运算符And没有为类型
System.Func 2[WebApplication1.View_MyView,System.Boolean]' and 'System.Func2 [WebApplication1.View_MyView,System.Boolean]'定义.

表达对我来说是新的,可能已经看了太多的代码,所以有点混淆如何去做...如果你能指出我正确的方向,真的很感激.

c# expression-trees

8
推荐指数
2
解决办法
5889
查看次数

标签 统计

c# ×1

expression-trees ×1