Здравствуйте! Разбираюсь паттерн Шлюз таблицы данных по Фаулеру, к примеру у нас есть такая модель
public class Team
{
public string Name { get; set; }
public ICollection<Player> Players { get; set; }
}
public class Player
{
public string Name { get; set; }
}
и есть два шлюза таблицы данных
public class TeamGateAway
{
public void Add(Team team);
}
public class PlayerGateAway
{
public void Add(Player player);
}
теперь вопрос, при создании Team, мы используем метод TeamGateAway.Add и Team добавляется в БД, но вот что делать с коллекцией Player которая в объекте Team, для нее отдельно использоваться PlayerGateAway.Add или же TeamGateAway.Add и при добавлении Team добавится и коллекция Player, вообщем суть вопроса, какой шлюз таблицы данных использовать если ведется работа с вложенными объектами, шлюз родительского объекта, или же разделать для родительского объекта один шлюз, для вложенных другой шлюз, т.е шлюз должен сохранять чисто один объект без вложенных, или может вложенные тоже сохранять? Надеюсь понятно объяснил суть проблемы, подскажите как будет правильнее