我正在使用查詢來查看用戶是否已經存在於數據庫中。如果它找到一個用戶,它將它添加到列表(而不是數據庫)中,並顯示一條消息。如果用戶不存在,程序會繼續添加用戶。當找不到結果時,linq查詢返回什麼
將查詢結果添加到列表中時,存在問題,結果什麼都沒發現。如果查詢什麼都沒有發現(用戶還不存在),返回的值不是null或0,所以我不知道如何檢查這個。
我的代碼工作正常,但我的問題是試圖找到一個更優雅的方法。我嘗試將查詢結果添加到列表中。如果他是「抓」,那就意味着用戶不存在並且應該被添加。現在我的代碼是:
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 2012-07-20 13:48:57
對返回不匹配的結果調用'.ToList'應該可以正常工作。它只是一個有0個條目的列表。 –
mellamokb
2012-07-20 13:53:47
這是我第一次嘗試。但是當我嘗試添加沒有匹配任何列表的結果時,它會引發異常。所以我的解決方法是使用此拋出的異常作爲執行其餘代碼的一種方式。 – tomo 2012-07-20 13:56:56