日期:2014-05-20  浏览次数:21383 次

IQueryable.Where()怎么实现组合条件查询?
本帖最后由 KatsuragiZero 于 2014-03-13 18:24:50 编辑

var query = from tui in db.t_user_info select tui;

if (!string.IsNullOrEmpty(strName))
{
      query = query.Where(m => m.FirstName.Contains(strName));
}


上面的代码是通过strName在用户表里的FirstName做模糊查询。

但是用户输入的查询条件strName是需要在FirstName和LastName两个字段中做组合查询。

类似于:

SELECT * FROM t_user_info 
WHERE FirstName like '%strName%' OR LastName like '%strName%'


这样的条件组合查询,用IQueryable类的Where方法能写出来吗?

还是说必须用SQL来实现?
------解决方案--------------------
query = db.t_user_info.Where(m => m.FirstName.Contains(strName));
query = query.Union(db.t_user_info.Where(m => m.LastName.Contains(strName)));