DbContext-更新记录时如何阻止数据库创建新记录?

问题描述 投票:0回答:1

我的数据库在应更新当前记录时会不断创建新记录。 Razor-Pages项目,asp.net 2.2。

应该发生什么:

  1. 从asp.net身份用户类检索电子邮件
  2. 通过比较电子邮件==电子邮件查找表公司中的匹配项>>
  3. 更新记录
  4. 保存更改
  5. 并且不更新,而是创建新记录。

public async Task<IActionResult> OnGetAsync()
{
    var user = await _userManager.GetUserAsync(User);
    if (user == null)
    {
        return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
    }

    var email = await _userManager.GetEmailAsync(user);

    var company = _context.Companies.FirstOrDefault(b => b.Email == email);
    Firma = user.Firma;

    return Page();
}

public async Task<IActionResult> OnPostAsync()
{
    var user = await _userManager.GetUserAsync(User);
    if (user == null)
    {
        return NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
    }

    var email = await _userManager.GetEmailAsync(user);

    var company = _context.Companies.First(a => a.Email == email);

    company.Navn = Input.Firma;
    company.Postnr = Input.Postnr;
    company.Sted = Input.Sted;
    company.Beskrivelse = Input.Beskrivelse;

    _context.SaveChanges();

    return RedirectToPage();
}

我的数据库在应更新当前记录时会不断创建新记录。 Razor-Pages项目,asp.net 2.2。应该发生什么:从asp.net身份用户类中检索电子邮件...

c# sqlite asp.net-core razor dbcontext
1个回答
0
投票
_context.Companies.Update(company);

_context.SaveChanges();
© www.soinside.com 2019 - 2024. All rights reserved.