我一直在尋找適當(dāng)?shù)姆较騺頇z查數(shù)據(jù)庫中是否存在登錄記錄。我的意圖是,當(dāng)用戶憑據(jù)從登錄頁面進(jìn)入時使用登錄名和密碼并使用異步檢查它是否存在。public async Task<ActionResult<ResultsDTO<LoginDTO>>> PostLogin(LoginFormDTO login){ ResultsDTO<LoginFormDTO> output = new ResultDTO<LoginForFoDTO>(); if (!ModelState.IsValid) { output.Success = false; output.SetValidations(ModelState); } LoginFormDTO loginFormDTO = null; try { string encryptedPassword = encryptmystuff(login.pw); // validate login log logUser = _context.log.SingleOrDefault(m => m.name == login.Username && m.password == encryptedPassword); } catch { }}
1 回答

慕標(biāo)琳琳
TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個贊
你只需要改變這一行
log logUser = _context.log.SingleOrDefault(m =>
m.name == login.Username && m.password == encryptedPassword);
至
log logUser = await _context.log.SingleOrDefaultAsync(m =>
m.name == login.Username && m.password == encryptedPassword);
// return failure if logUser is null
這是 using async/await,它將同步執(zhí)行您的代碼,但在執(zhí)行數(shù)據(jù)庫查詢時不會阻塞線程。
另一方面,如果您使用SingleOrDefault(),那么您將在數(shù)據(jù)庫操作期間阻塞線程,這不是一個好習(xí)慣。
- 1 回答
- 0 關(guān)注
- 77 瀏覽
添加回答
舉報(bào)
0/150
提交
取消