2010-04-19 2 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

해야 할 것 :

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 함수를 사용할 수 있습니다.

예 :

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

그는 SQL에 linq를 사용하고 있습니까? – Nix

+1

Nix : 네 말이 맞아, 나는 너무 빨리 생각했다. 재미있는 사실은 여전히 ​​선다;) – rossisdead

관련 문제