У меня есть две базы данных, одна из которых обрабатывает аутентификацию пользователя (таблицы идентификации по умолчанию asp.net), а другая - другие данные, в которых также есть пользовательская таблица.
Я пытаюсь обновить информацию пользователя втаблица aspnetuser, которая также обновит пользовательскую таблицу в другой базе данных.У меня есть код не обновляет необходимые поля в таблице aspnetuser и создает новую запись в пользовательской таблице пользователя, что не является желаемым результатом.Ниже приведен код, который у меня есть.
[HttpPut("{id}")]
public async Task<IActionResult> Update(string id, ApplicationUser appUser)
{
if (!ModelState.IsValid)
{
return NotFound();
}
//locate appUser Id from AspNetUser table
var user = await _userManager.FindByIdAsync(appUser.Id);
if (user == null)
{
return NotFound();
}
//locate email address that exists in the custom User table
var contextUser = _context.UserTable.Where(u => u.Email == appUser.Email);
if (contextUser == null)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
await _userManager.UpdateAsync(appUser);
UserTable personInfo = new User();
personInfo.FirstName = appUser.FirstName;
personInfo.LastName = appUser.LastName;
personInfo.EmailAddress = appUser.Email;
_context.UserTable.Update(personInfo);
await aspnetdBContext.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
}
}
return Ok(appUser);
Когда я тестирую через почтальона, я получаю код Ok 200 с измененным результатом json.Таблица aspnetuser по-прежнему не обновляет обязательное поле.Он также не находит пользователя в пользовательской таблице.Куда я иду не так?