2013-03-05 5 views
0

동일한 이메일 주소를 가진 사용자 목록을 검색하는 가장 효율적인 방법을 찾으려고합니다.특정 이메일 주소를 가진 사용자 검색

내 첫 번째 방법은 매우 정직 :

MembershipUserCollection users = Membership.GetAllUsers(); 

나는 목록을 반복하고 전자 메일 주소 추가 로직을 수행하는 일치 확인 할 수 users의 내 컬렉션이 있으면.

내 관심사는 논리가 너무 오래 걸리는 수준으로 사용자 목록이 커질 것이라는 점입니다.

두 번째 접근법은 Linq을 결합하여 모든 단일 사용자를 루핑하지 않도록 UserName (이 경우 전자 메일 주소)이있는 사용자를 검색하는 것입니다.

MembershipUserCollection userlist = (from user in Membership.GetAllUsers() 
            where user.UserName == emailAddress 
            select user).ToList(); 

나는 위의와지고있어 오류 : 는 소스 유형 'System.Web.Security.MembershipUserCollection'에 대한 쿼리 패턴의 구현을 찾을 수 없습니다. '어디서'를 찾을 수 없습니다. 범위 변수 'user'의 유형을 명시 적으로 지정하는 것을 고려하십시오.

전자 메일 주소가 일치하는 사용자 목록을 가장 효율적으로 검색하는 데 도움을 줄 수 있습니까?

Membership.FindUsersByEmail() 
+0

성능이 걱정된다면 백엔드에서이 작업을 수행 할 수 있습니까? 또는 ADO.NET 데이터 개체의 Filter 또는 Select 메서드를 사용합니까? '매우 큰 사용자 데이터베이스에서 GetAllUsers 메서드를 사용할 때는 ASP.NET 페이지의 MembershipUserCollection이 응용 프로그램의 성능을 저하시킬 수 있으므로주의하십시오. "http://msdn.microsoft.com/en-us/library/dy8swhya .aspx – Tim

답변

1

사용

Membership.FindUsersByEmail("[email protected]"); 

또한 다른 모델로 당신의 데이터 모델에 회원 테이블을 추가하고 조회 할 수 있습니다에 대해 어떻게

관련 문제