一个简单的LINQ 查询 【新手】 求解释
请问下面2个查询条件有什么区别,就where条件的顺序换了下。。 麻烦解释下这个查询语句 谢谢
var user = from u in db.UserManage
where (string.IsNullOrEmpty(age)) ? true : (u.age == a)
&& (string.IsNullOrEmpty(userName)) ? true : u.userName.Contains(userName)
select u;
-------------------------------------------------------------------------------------
var user = from u in db.UserManage
where (string.IsNullOrEmpty(userName)) ? true : u.userName.Contains(userName)
&& (string.IsNullOrEmpty(age)) ? true : (u.age == a)
select u;
[解决办法]
打个比方:
第一个查询是这样: 从年龄等于18岁的人中找姓张的
第二个查询: 从姓张的人中找年龄是18岁的
我建议你这么写:
var user = from u in db.UserManage select u;
if(!string.IsNullOrEmpty(age))
user=user.Where(u=>u.age == age);
if(!string.IsNullOrEmpty(userName))
user=user.Where(u=>u.userName.Contains(userName));