如何使用 WebAPI 检查数据库中是否存在记录?

我一直在寻找适当的方向来检查数据库中是否存在登录记录。我的意图是,当用户凭据从登录页面进入时使用登录名和密码并使用异步检查它是否存在。


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

    {


    }

}


四季花海
浏览 61回答 1
1回答

慕标琳琳

你只需要改变这一行log logUser = _context.log.SingleOrDefault(m =>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m.name == login.Username && m.password == encryptedPassword);至log logUser = await _context.log.SingleOrDefaultAsync(m =>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; m.name == login.Username && m.password == encryptedPassword);// return failure if logUser is null这是 using async/await,它将同步执行您的代码,但在执行数据库查询时不会阻塞线程。另一方面,如果您使用SingleOrDefault(),那么您将在数据库操作期间阻塞线程,这不是一个好习惯。
打开App,查看更多内容
随时随地看视频慕课网APP