DbContext - как мне запретить моей базе данных создавать новые записи при их обновлении? - PullRequest
0 голосов
/ 28 сентября 2019

Моя база данных продолжает создавать новые записи, когда она должна обновлять текущую.Проект Razor-Pages, asp.net 2.2.

Что должно происходить:

  1. Получение электронной почты из класса пользователей asp.net Идентификация
  2. Поиск совпадений в таблице Компаниисравнивая электронную почту == email
  3. Обновление записей
  4. Сохранение изменений

И вместо обновления создаются новые записи.

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();
}

1 Ответ

1 голос
/ 28 сентября 2019
_context.Companies.Update(company);

_context.SaveChanges();
...