2011-05-09 52 views
1

我正在創建一個登錄屏幕,我從表單中獲取用戶標識和密碼。如何使用實體框架檢查重複標識是否已存在數據庫?如何使用實體框架檢查特定條目的數據庫

我使用實體框架4和asp.net 4.0

我真的很新的實體框架,這樣一個簡單的迴應將是非常有益的。

謝謝!

+0

您使用的是會員認證還是您自己的認證?你的數據模型是什麼? – BrokenGlass 2011-05-09 17:04:18

+0

我正在使用我自己的模型,代碼如下 var objuser = new PrepLicensingSolution2010.DAL.User();如果(txtPassWord.Text.Length> 0) {strHashedPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassWord.Text,「sha1」); } objuser.username = txtEmailAddress.Text; objuser.Password = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassWord.Text,「sha1」); ; objuser.userRole =「member」; – 2011-05-09 17:37:59

+0

編輯您的問題,並不要在代碼發表評論。 – 2011-05-09 21:22:46

回答

3

重複的ID?那麼你想驗證登錄是否正確,或者你想在創建新用戶時檢查登錄是否已經存在?

如果您想驗證登錄用:

bool exists = context.Users.Any(u => u.Login == userName && u.Password == pwdHash); 

如果您需要檢索用戶進行客戶端驗證(這是絕對沒有必要),你只需撥打:

var user = context.Users.SingleOrDefault(u => u.Login == userName); 

如果具有傳遞用戶名的用戶不存在,此調用將返回null。

如果要在新用戶註冊過程中檢查登錄是否可用,您通常也可以使用Any,但您必須在相同的序列化事務中執行檢查並插入 - 這可能會對高流量數據庫產生性能影響。另一種方法是對數據庫中的用戶名設置唯一的約束,並簡單地嘗試保存新用戶。如果用戶名存在,您將捕獲異常。