比如前台有如下代码:
用户编号:@Html.TextBoxFor(u => u.UserNumber) 用户年龄:在 @Html.TextBoxFor(u =>u.Age )到 @Html.TextBoxFor(u => u.Age)
我希望后台接收到上述model.system_user对象后能够自己判断内容是否为空,不为空生成where(p=>p.UserNumber='01222' && p.Age>=10 && p.Age<=20),
最笨的办法就是自己手工判断了,不知道有什么好方法可以自动生成?谢谢指导
你应该是想Linq多条件查询吧。这个可以使用PredicateBuilder类和LinqKit来实现。参考地址:http://zzk.cnblogs.com/s?w=PredicateBuilder&t=b
后台如何得知OR And =这种关系呢?
@happydaily: 这个就需要你前台传递到后台了。
@幻天芒: 问题就出在这,不知道有啥好思路,前台提交什么代码,后台能转成lambda表达式而不需要手动判断.
@幻天芒: 有好的解决思路吗,给个谢谢.
@happydaily: 可以将字符串转换为Lambda表达式,这个我也不会。你可以参开下资料,http://www.cnblogs.com/zhucai/archive/2009/06/10/LambdaParser_Lambda_Expression_Parser.html。
对于这样的查询,一般做法是架构条件的key value传递到后台,然后在后台通过if判断结合PredicateBuilder来实现动态的where条件。
dynamic linq或者自己写扩展