2016-10-01 88 views
-1

我想允許用戶編輯他們的UserName(必須是唯一的)和一些其他數據。但是,對於我使用的表達式,如果您選擇不編輯您的用戶名,那麼它不會讓您更改任何內容,因爲您當前的用戶名已存在於數據庫中。Lambda表達式 - 讀取數據庫

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"

+0

你的意思是,如果有任何輸入.UserName和input.Id!=用戶的ID? – juunas

+1

您還需要包含'userId'(如果它的'null'或'0'表示其新用戶,則使用您的查詢,否則在查詢中包含'&& u.UserId!= user.UserId' –

回答

1

如果有任何input.UserName(但除了input.UserName屬於input.Id本身)數據庫

它只是

b.Users.Any(u => u.UserName == user.UserName && u.Id != user.Id)