linq喜欢空字符串

时间:2010-04-19 21:14:28

标签: linq sql-like contains

var list = (from i in _dataContext.aspnet_Users.Include("aspnet_Membership")  where i.UserName.Contains(userName)  select i ).ToList();

如果userName=""则没有任何回报。如果空字符串然后返回所有记录,我怎么能这样做?

2 个答案:

答案 0 :(得分:7)

执行:

  var list = 
      (from i in _dataContext.aspnet_Users.Include("aspnet_Membership") 
        where string.IsNullOrEmpty(userName)
               || i.UserName.Contains(userName)  
       select i ).ToList();

答案 1 :(得分:2)

有趣的事实:System.Data.Linq.SqlClient命名空间包含一些非常有用的辅助方法。

你可以使用SqlMethods.Like函数,如果传递一个空字符串,它将返回所有结果。

例如:

 (from i in _dataContext.aspnet_Users.Include("aspnet_Membership") 
  where SqlMethods.Like(i.UserName, "%" + userName + "%")
  select i).ToList();