linq как пустая строка - PullRequest
       28

linq как пустая строка

2 голосов
/ 20 апреля 2010
var list = (from i in _dataContext.aspnet_Users.Include("aspnet_Membership")  where i.UserName.Contains(userName)  select i ).ToList();

если userName="", то ничего не возвращается. Как я могу сделать это, если пустая строка, то вернуть все записи?

Ответы [ 2 ]

7 голосов
/ 20 апреля 2010

Do:

  var list = 
      (from i in _dataContext.aspnet_Users.Include("aspnet_Membership") 
        where string.IsNullOrEmpty(userName)
               || i.UserName.Contains(userName)  
       select i ).ToList();
2 голосов
/ 20 апреля 2010

Интересный факт: пространство имен System.Data.Linq.SqlClient включает несколько вспомогательных методов, которые довольно полезны.

Вы можете использовать функцию SqlMethods.Like, которая будет возвращать все результаты, если ему будет передана пустая строка.

Ex:

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