#asp.net #entity-framework-4
#asp.net #entity-framework-4
Вопрос:
Я создаю экран входа в систему, где я получаю идентификатор пользователя и пароль из формы.Как мне использовать entity Framework, чтобы проверить, существует ли дубликат id в базе данных?
Я использую entity Framework 4 и asp.net 4.0
Я действительно новичок в entity Framework, поэтому простой ответ был бы очень полезен.
Спасибо!
Комментарии:
1. Вы используете аутентификацию участника или свою собственную? Какова ваша модель данных?
2. Я использую свою собственную модель, код выглядит следующим образом: var objuser = new PrepLicensingSolution2010.DAL.User(); if (txtPassWord.Text.Length > 0) { string strHashedPassword = FormsAuthentication. HashPasswordForStoringInConfigFile(txtPassWord.Text, «sha1»); } objuser.username = txtEmailAddress. Текст; objuser. Пароль = FormsAuthentication. HashPasswordForStoringInConfigFile(txtPassWord.Text, «sha1»); ; objuser.Роль пользователя = «member»;
3. Отредактируйте свой вопрос и не публикуйте код в комментариях.
Ответ №1:
Дублирующий идентификатор? Итак, вы хотите подтвердить правильность входа в систему или вы хотите проверить, что логин уже существует при создании нового пользователя?
Если вы хотите подтвердить логин, используйте:
bool exists = context.Users.Any(u => u.Login == userName amp;amp; u.Password == pwdHash);
Если вам нужно получить пользователя для выполнения проверки на клиенте (что абсолютно не нужно), вы можете просто вызвать:
var user = context.Users.SingleOrDefault(u => u.Login == userName);
Этот вызов вернет значение null, если пользователь с переданным именем пользователя не существует.
Если вы хотите проверить, что вход бесплатный при регистрации нового пользователя, вы, как правило, также можете использовать Any
, но вы должны выполнить проверку и вставить в ту же сериализованную транзакцию — это может повлиять на производительность в базе данных с высоким трафиком. Другой подход заключается в наложении уникального ограничения на имя пользователя в базе данных и простой попытке сохранить нового пользователя. Если имя пользователя существует, вы поймаете исключение.