Create e delete funciona mas Update não (cannot add or update a child row a foreign key constraint fails)

Estou à 4horas tentando entender o porque disso está acontecendo mas não consigo, já pesquisei sobre a Exception mas não consigo identificar o erro no meu código/banco. Sou iniciante na área e comecei a estudar mvc tem 2 dias, então perdoem-me se eu deixar alguma informação passar despercebido, é só me alertar qual informação faltou que eu posto aqui.


Exception:

MySqlException: Cannot add or update a child row: a foreign key constraint fails (`crudvendasmvcdb`.`VendasRegistro`, CONSTRAINT `FK_VendasRegistro_Vendedor_VendedorId` FOREIGN KEY (`VendedorId`) REFERENCES `Vendedor` (`Id`) ON DELETE CASCADE)

MySqlConnector.Core.ServerSession.ReceiveReplyAsyncAwaited(ValueTask<ArraySegment<byte>> task) in  `ServerSession.cs` , line 806

MySqlException: Cannot add or update a child row: a foreign key constraint fails (`crudvendasmvcdb`.`VendasRegistro`, CONSTRAINT `FK_VendasRegistro_Vendedor_VendedorId` FOREIGN KEY (`VendedorId`) REFERENCES `Vendedor` (`Id`) ON DELETE CASCADE)

MySql.Data.MySqlClient.MySqlDataReader.ActivateResultSet() in  `MySqlDataReader.cs` , line 130

DbUpdateException: An error occurred while updating the entries. See the inner exception for details.

Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
CrudVendasMvc.Services.VendasRegistroService.AtualizarAsync(VendasRegistro obj) in  `VendasRegistroService.cs`

+

  109. await _context.SaveChangesAsync();

CrudVendasMvc.Controllers.VendasRegistrosController.Edit(int id, VendasRegistro venda) in  `VendasRegistrosController.cs`

+

  201. await _vendasRegistroService.AtualizarAsync(venda);

Tabelas:

mysql> desc VendasRegistro;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| Id         | int         | NO   | PRI | NULL    | auto_increment |
| Data       | datetime(6) | NO   |     | NULL    |                |
| Quantia    | double      | NO   |     | NULL    |                |
| Estado     | int         | NO   |     | NULL    |                |
| VendedorId | int         | NO   | MUL | NULL    |                |
+------------+-------------+------+-----+---------+----------------+

mysql> desc Vendedor;
+----------------+-------------+------+-----+---------+----------------+
| Field          | Type        | Null | Key | Default | Extra          |
+----------------+-------------+------+-----+---------+----------------+
| Id             | int         | NO   | PRI | NULL    | auto_increment |
| Nome           | varchar(60) | NO   |     | NULL    |                |
| Email          | longtext    | NO   |     | NULL    |                |
| DataNascimento | datetime(6) | NO   |     | NULL    |                |
| Salario        | double      | NO   |     | NULL    |                |
| DepartamentoId | int         | NO   | MUL | NULL    |                |
+----------------+-------------+------+-----+---------+----------------+

mysql> desc Departamento;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| Id    | int      | NO   | PRI | NULL    | auto_increment |
| Nome  | longtext | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+

VendasRegistrosController (EDIT (POST)):

        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Edit(int id, VendasRegistro venda)
        {
            if (!ModelState.IsValid)
            {
                var listaVendedores = await _vendedorService.EncontrarTodosAsync();
                var listaEstados = Enum.GetValues(typeof(VendaEstado)).Cast<VendaEstado>().ToList();
                var viewModel = new VendasRegistroViewModel{ VendasRegistro = venda, Estados = listaEstados, Vendedores = listaVendedores};
                return View(viewModel);
            }

            if (id != venda.Id)
            {
                return RedirectToAction(nameof(Error), new { message = "Id não correspondente."});
            }

            try
            {
                await _vendasRegistroService.AtualizarAsync(venda);
                return RedirectToAction(nameof(Index));
            }
            catch (ApplicationException ex)
            {
                 return RedirectToAction(nameof(Error), new { Message = ex.Message});
            }
        }

Método "AtualizarAsync em VendasRegistroService:

        public async Task AtualizarAsync(VendasRegistro obj)
        {
            if (!await _context.VendasRegistro.AnyAsync(venda => venda.Id == obj.Id))
            {
                throw new NotFoundException("Id não encontrado.");
            }

            try
            {
                _context.Update(obj);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException ex)
            {
                throw new DbUpdateConcurrencyException(ex.Message);
            }
        }
Resumo

Eu consigo criar um novo registro de venda e também consigo deletar sem problemas, só para dar o update que acontece isso.

Usei a mesma lógica para o Vendedor, consigo editar, cadastrar e deletar sem problemas.

Por onde começo a investigar a causa disso ?

Esse tipo de problema ocorre quando tentas colocar um valor numa coluna que é Chave Estrangeira mas esse valor não existe na tabela referenciada.
No teu caso, deves estar a colocar um valor em VendasRegistro.VendedorId que não existe em Vendedor.Id.