These are all the Objects we use in our demo.

public class Club
{
[PrimaryKey, AutoIncrement] // Primary Key
public int IdC { get; set; }
public string NameClub { get; set; }
public List<Team> Teams { get; set; } // One to Many
public List<TeamPlayer> TeamPlayers { get; set; } // One to Many
}

public class Team
{
[PrimaryKey(), AutoIncrement] // Primary Key
public int IdT { get; set; }
public string NameTeam { get; set; }
[ForeignKey(typeof(Club), “IdC”)] // Foreign Key One to Many
public int ClubId { get; set; }
public List<TeamPlayer> TeamPlayers { get; set; }
public List<TeamMatch> TeamMatches { get; set; } // Many to Many
public List<TeamCom> TeamComs { get; set; } // Many to Many
public List<Note> Notes { get; set; } // One to Many
}

public class TeamPlayer
{
[PrimaryKey, AutoIncrement] // Primary Key
public int IdTP { get; set; }
public string NamePlayer { get; set; }
[ForeignKey(typeof(Team), “IdT”)]   // Foreign Key One to Many
public int TeamId { get; set; }
[ForeignKey(typeof(Club), “IdC”)] // Foreign Key One to Many
public int ClubId { get; set; }        
public List<Note> Notes { get; set; }     // One to Many
public List<Match> Matches { get; set; }  // Many to Many
}

public class Note
{
[PrimaryKey, AutoIncrement]   // Primary Key
public int IdN { get; set; }
public string NoteText { get; set; }
[ForeignKey(typeof(Team), “IdT”)]  // Foreign Key One to Many
  public int TeamId { get; set;
[ForeignKey(typeof(TeamPlayer), “IdTP”)] // Foreign Key One to Many
public int TeamPlayerId { get; set; }
}

public class TeamMatch
{
[PrimaryKey, AutoIncrement] // Primary Key
public int IdTM { get; set; }
public string NameTeamMatch { get; set; }
public List<Match> Matches { get; set; }    // One to Many
  public List<Team> Teams { get; set; } // Many to Many
}

public class Match
{
[PrimaryKey, AutoIncrement]  // Primary Key
public int IdM { get; set; }
public string NameMatch { get; set; }
[ForeignKey(typeof(TeamMatch), “IdTM”)]    // Specify the foreign key
public int TeamMatchId { get; set; }
public List<TeamPlayer> TeamPlayers { get; set; } // Many to Many
public List<MatchSet> MatchSets { get; set; }    // Specify the One to Many
}

public class MatchSet
{
[PrimaryKey, AutoIncrement]  // Primary Key
public int IdMS { get; set; }
public string NameMatchSet { get; set; }
  [ForeignKey(typeof(Match), “IdM”)]     // Foreign Key One to Many
public int MatchSetId { get; set; }
}

public class TeamMatchToTeam // Many to Many reference Table
 {
[PrimaryKey, AutoIncrement] // Primary Key
public int IdTMtT { get; set; }
[ForeignKey(typeof(TeamMatch), “IdTM”)] // Foreign Key Many To Many
public int TeamMatchId { get; set; }
[ForeignKey(typeof(Team), “IdT”)] // Foreign Key Many To Many
  public int TeamId { get; set; }
 }

public class TeamCom
{
[PrimaryKey, AutoIncrement]        // Primary Key
public int IdTC { get; set; }
public string NameTeamCom { get; set; }
public List<Team> Teams { get; set; } // Many to Many
}

public class TeamComToTeam  // Many to Many reference Table
{
[PrimaryKey, AutoIncrement] // Primary Key
public int IdTCtT { get; set; }
[ForeignKey(typeof(TeamCom), “IdTC”)]  // Foreign Key Many To Many
public int TeamComId { get; set; }
[ForeignKey(typeof(Team), “IdT”)]  // Foreign Key Many To Many
public int TeamId { get; set; }
}