Как проверить в базе данных конкретную запись с помощью entity Framework

#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 , но вы должны выполнить проверку и вставить в ту же сериализованную транзакцию — это может повлиять на производительность в базе данных с высоким трафиком. Другой подход заключается в наложении уникального ограничения на имя пользователя в базе данных и простой попытке сохранить нового пользователя. Если имя пользователя существует, вы поймаете исключение.