我在我的mvc應用程序上有一個簡單的登錄窗體,除了當您嘗試使用不在數據庫中的用戶登錄時,它能正常工作。MVC linq查詢句柄其中序列不包含任何元素的情況
它會拋出一個錯誤Sequence contains no elements
這是有道理的,因爲數據庫中沒有匹配的用戶,儘管我嘗試在代碼中處理它,但它沒有這樣做。
// POST: Login User
[HttpPost]
public ActionResult Login(UserAccount user)
{
using (MyDbContext db = new MyDbContext())
{
var usr = db.Users.Single(u => u.UserName == user.UserName && u.UserPassword == UserPassword);
if (usr != null)
{
Session["UserID"] = usr.UserId.ToString();
Session["Username"] = usr.UserName.ToString();
return RedirectToAction("LoggedIn");
}
else
{
ModelState.AddModelError("", "Username or Password Incorrect");
}
}
return View();
}
你試過'SingleOrDefault'嗎? –
對不起,我仍然在學習linq,只是在查詢結束時拋出它? –
不是'Single',而是使用'SingleOrDefault' –