#c# #asp.net-mvc #lambda
#c# #asp.net-mvc #лямбда
Вопрос:
Я хочу разрешить пользователю редактировать свое имя пользователя (которое должно быть уникальным) и некоторые другие данные. Однако, с выражением, которое я использую, если вы решите не редактировать свое имя пользователя, это не позволит вам ничего изменить, потому что ваше текущее имя пользователя уже в базе данных.
if (db.Users.Any(u => u.UserName == user.UserName)) {
//doing stuff
return View();
}
Вместо
"if there is ANY of input.UserName in database"
,
Я бы хотел, чтобы это выражало
"if there is ANY input.UserName(but except input.UserName that belongs to input.Id itself) in database"
.
Комментарии:
1. Вы имеете в виду, есть ли какие-либо входные данные. Имя пользователя и ввод. Id != идентификатор пользователя?
2. Вам также необходимо включить
userId
(если этоnull
или0
означает, что это новый пользователь, затем используйте свой запрос, в противном случае включитеamp;amp; u.UserId != user.UserId
в запрос
Ответ №1:
если есть КАКИЕ-ЛИБО входные данные.Имя пользователя (но кроме ввода.Имя пользователя, которое принадлежит вводу.Сам идентификатор) в базе данных
Это просто
b.Users.Any(u => u.UserName == user.UserName amp;amp; u.Id != user.Id)