Не понимаю в чем проблема.
if(delivery.Visit != null)
{
delivery.Visit = null;
_context.Deliveries.Update(delivery);
await _context.SaveChangesAsync();
}
В итоге объект остается привязанным. Visit - это так же объект из контекста. В БД в таблице deliveries поле Visit_id может быть null.
Перед Update вызываем Attach и всё будет хорошо
_context.Deliveries.Attach(delivery);
....
_context.Deliveries.Update(delivery);
await _context.SaveChangesAsync();
Сборка персонального компьютера от Artline: умный выбор для современных пользователей