Как проверить в базе данных для конкретной записи, используя структуру объекта - PullRequest
1 голос
/ 09 мая 2011

Я создаю экран входа в систему, где я получаю идентификатор пользователя и пароль из формы. Как я могу использовать структуру сущностей, чтобы проверить, существует ли дублирующий идентификатор в базе данных?

Я использую Entity Framework 4 и Asp.net 4.0

Я действительно новичок в структуре сущностей, поэтому очень полезен простой ответ.

Спасибо!

1 Ответ

3 голосов
/ 10 мая 2011

Дублированный идентификатор?Итак, хотите ли вы подтвердить, что логин правильный, или вы хотите проверить, что логин уже существует при создании нового пользователя?

Если вы хотите проверить логин, используйте:

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

Есливам нужно получить пользователя для проверки на клиенте (что совершенно не нужно), вы можете просто позвонить:

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

Этот вызов вернет ноль, если пользователь с переданным именем пользователя не существует.

Если вы хотите проверить, что вход в систему свободен во время регистрации нового пользователя, вы, как правило, также можете использовать Any, но вы должны выполнить проверку и вставить в одну сериализованную транзакцию, что может повлиять на производительность в базе данных с высоким трафиком.Другой подход - наложить уникальное ограничение на имя пользователя в базе данных и просто попытаться сохранить нового пользователя.Если имя пользователя существует, вы поймаете исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...