В настоящее время я пытаюсь понять идею агрегированных корней и их связи с репозиториями.
Даны следующие объекты домена:
public class Country {
public string Name { get; set; }
public ICollection<City> Cities { get; set; }
}
public class City {
public string Name { get; set; }
}
Думаю, я правильно определил Country как совокупный корень для City, так как в моем домене не должно быть городов, которые не расположены в пределах страна. Должна быть возможность добавить новый город в хранилище данных только через страну, и если страна будет удалена, каждый город внутри также должен быть удален.
Итак, как может выглядеть такой страновой репозиторий? И как выглядит Совокупный корень страны? Есть ли внутри домена CityRepository (что позволило бы мне добавить город в базу данных, даже если нет родственной страны!)? И есть ли CountryRepository внутри Country (каким-то образом стране нужно заполнить свои города? Или это работа репозитория?)