2010-08-13 4 views
1

if 문에서 SQL 테이블의 레코드 존재 여부를 확인하려고하는데 .Count()를 사용하려고했지만 반환 할 때 작동하지 않습니다. 테이블의 모든 레코드의 총량 그것은이 올 때테이블의 레코드 확인

// If the current user does not exist in the Database, then add the user 
if (staffdb.Staffs.Single(s => s.Staffname == user).Count() == 0) 
{ 

} 

나는 초보자 약간 있어요하지만 인터넷 검색을 조금 해봤 꺼 아무것도 찾을 수 없습니다.

+1

제목에 "asp.net mvc 2 C# SQL LINQ"와 같은 것을 넣지 마십시오. 모두가 태그에 속합니다. 이는 질문을 분류하기위한 목적 일뿐입니다. –

+0

John에 대해 유감스럽게 생각합니다. 게시 한 후에도 제목을 변경할 수있는 방법이 있습니까? – bEUY

답변

2

올바른 솔루션입니다 :

if (!staffdb.Staffs.Any(s => s.Staffname == user)) 
{ 
    // ... 
} 

이 데이터베이스는 하나를 발견하면보고 중지됩니다 보장합니다. .Where() 다음에 .Count()을 사용하면 잠재적으로 전체 테이블을 통과하여 필요한 것보다 긴 목록을 검색합니다.

+0

환상적! 나를 위해 Timwi 작품에 관한 정보를 주셔서 감사합니다. 어디서나()와. 카운트() 전체 테이블을 통과, 나는 그 사실을 몰랐습니다. – bEUY

0
// If the current user does not exist in the Database, then add the user 
if (staffdb.Staffs.SingleOrDefault(s => s.Staffname == user) == null) 
{ 

} 
+0

코드가 잘못 되었기 때문에 Downvoted (데이터베이스에 사용자가 있는지 만 확인 함) 및 매우 비효율적이기 때문에 Downvoted. – Timwi

관련 문제