getting prob on reading nested class c#

Hi really need assistance here,

I have 2 classes which i use to read from json i need to save into 2 tables (root and participants) in 1 submission. i will have only 1 root with 1 or many participants. i have no prob saving the root but i have prob reading if i am sending both (root with participants}

[
  {
    "NoIC": "122233243",
    "Nama": "TEST NAME",
    ...
    "Participant": [
        {
            "Nama" : "Participant 1",
            "Bil" : "1",
            ...
        }, 
        {
            "Nama" : "Participant 2",
            "Bil" : "1",
            ....
        }
    ] 
  }
 ]


public class Participant
{
    public string ref_no { get; set; }
    public string Nama { get; set; }
    public string Bil { get; set; }
    public string Price { get; set; }
    public string RequestedPlace { get; set; }
    public string RequestedExe { get; set; }
    public string RequestedDate { get; set; }
    public string Type { get; set; }
}

public class Root
{
    public string NoIC { get; set; }
    public string Nama { get; set; }
    public string HPNo { get; set; }
    public string Email { get; set; }
    public string Type { get; set; }
    public string RegisterBy { get; set; }
    public List<Participant> Participant { get; set; }
}



    public string RegisterApplication([FromBody] Root register, Participant participants)
    {
        try
        {
            using (MySqlConnection sql = new MySqlConnection(_connectionString))
            {
                using (MySqlCommand cmd = new MySqlCommand("GetInsertApplication", sql))
                {
                    sql.Open();
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;

                    // cmd.Parameters.AddWithValue("@refNo", register.RefNo);
                    cmd.Parameters.AddWithValue("@NoIC", register.NoIC);
                    cmd.Parameters.AddWithValue("@Nama", register.Nama.ToUpper());
                    cmd.Parameters.AddWithValue("@NoFonHp", register.HPNo);
                    cmd.Parameters.AddWithValue("@Email", register.Email);
                    cmd.Parameters.AddWithValue("@refType", register.Type);
                    cmd.Parameters.AddWithValue("@RegisterBy", register.RegisterBy);

                   ......

                    ref_no = refnoParameter.Value.ToString(); //will pass this refno to child/participant

my prob is here. i need to read the child (1 Root can have more than 1 participant)

    List<Participant> participants = new List<Participant>();

                using (MySqlCommand cmd2 = new MySqlCommand("GetInsertParticipant", sql))
                {
                    cmd2.Parameters.AddWithValue("@ref_no", ref_no);
                    cmd2.Parameters.AddWithValue("@Nama", participant.Nama.ToUpper());
                    cmd2.Parameters.AddWithValue("@Bil", participant.Bil);
                    cmd2.Parameters.AddWithValue("@Price", participant.Price);
                    cmd2.Parameters.AddWithValue("@RequestedPlace", participant.RequestedPlace);
                    cmd2.Parameters.AddWithValue("@RequestedExe", participant.RequestedExe);
                    cmd2.Parameters.AddWithValue("@RequestedDate", participant.RequestedDate);
                    cmd2.Parameters.AddWithValue("@Type", participant.Type);
                    cmd2.Connection.Open();

                    cmd2.CommandType = CommandType.Text;
                    cmd2.ExecuteNonQuery();

}}}}}

anybody please, i stuck here for few days and i really need your help/opinion. thaks in advanced