Лямбда-выражение — чтение БД

#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)