【问题标题】:How to update database via LINQ query in entity framework?如何通过实体框架中的 LINQ 查询更新数据库?
【发布时间】:2022-09-27 20:22:11
【问题描述】:

我正在尝试使用实体框架上的 LINQ 查询来更新我的数据库。在我的密码更改表单上,我希望用户插入他们当前的密码,然后对其进行加盐和哈希处理,以确认其相等。

如果密码匹配,我有第二个输入,用户在其中输入他们想要的新密码,这会被散列并用当前密码更改。

这是代码示例

public async Task<IActionResult> OnPostAsync()
{
    string currentuser = User.Identity.Name;
    var user = _context.User.Where(a => a.Username == currentuser).FirstOrDefault()!;
    string saltedpass = Password + user.Salt;
    if (Hash(saltedpass) == user.Hash)
    {
        user.Hash = Hash(NewPassword + user.Salt);
        //update old password with new
        return RedirectToPage(\"/Index\");
    }
    else
    {
       //show error
        TempData[\"PasswordsDontMatch\"] = \"The password is not correct.\";
        return Page();
    }
}

重定向仅用于测试目的,我的问题是如何通过 LINQ 使用新密码更新用户的当前密码?

  • 您需要告诉 EF 使用 await _context.SaveChangesAysnc() 保留更改

标签: .net entity-framework linq dbcontext


【解决方案1】:

_context 是什么类型?也许您需要做的就是在进行重定向之前调用_context.SaveChanges();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-17
    • 2021-12-25
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 1970-01-01
    相关资源
    最近更新 更多