나는 쿼리를 사용하여 사용자가 이미 데이터베이스에 있는지 확인합니다. 사용자를 찾으면 데이터베이스가 아닌 목록에 추가하고 메시지를 표시합니다. 사용자가 아직 존재하지 않으면 프로그램을 계속 실행하여 사용자를 추가합니다.결과가 없을 때 linq 쿼리는 무엇을 반환합니까?
결과에 아무 것도없는 경우 쿼리 결과를 목록에 추가 할 때 문제가 있습니다. 쿼리에서 아무 것도 발견되지 않은 경우 (사용자가 아직 존재하지 않음) 반환 된 값이 null 또는 0이 아니므로이를 확인하는 방법을 모르겠습니다.
내 코드는 정상적으로 작동하지만 내 문제는 좀 더 우아한 접근 방법을 찾고 있습니다. 쿼리 결과를 목록에 추가하려고합니다. 그의 "캐치 (catch)"는 사용자가 존재하지 않고 추가 될 것임을 의미합니다. 지금 내 코드 :
var userIsNew =
from f in controlEntities.Users
where (f.UserId == userIdTextBox.Text)
select f;
List<Users> temp = new List<Users>();
try
{
temp = userIsNew.ToList<Users>();
}
catch
{
//do nothing
}
if (temp.Count > 0)
{
MessageBox.Show("This UserId already exists in the Database. \nPlease try another UserId.");
}
당신의 도움에 감사드립니다!
[예외 논리] (http://msdn.microsoft.com/en-us/library/dd264997.aspx)는 거의 항상 잘못되었습니다. – mellamokb
'.ToList'을 호출하면 일치하는 결과를 반환하지 않아도됩니다. 그것은 단지 그것에 0 엔트리가있는 목록 일 것입니다. –
mellamokb
내가 처음 시도한 것이 었습니다. 하지만 어떤 종류의 목록과도 일치하지 않는 결과를 추가하려고하면 예외가 발생합니다. 그래서 내 해결 방법은 내 코드의 나머지 부분을 실행하는 방법으로이 예외를 사용하는 것이 었습니다. – tomo