2010-04-19 6 views
2
var list = (from i in _dataContext.aspnet_Users.Include("aspnet_Membership") where i.UserName.Contains(userName) select i).ToList(); 

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

+0

Просьба уточнить, я не имею понятия, что вы просите. - Редактировать - подумал я, думаю, у меня это есть. –

ответ

7

Do:

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

Интересный факт: Пространство имен 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(); 
+2

он использует linq для sql? – Nix

+1

Nix: Вы правы, я предположил слишком быстро. Интересный факт все еще стоит;) – rossisdead