В книге Эванса написано что "repositories" должны возвращать только "aggregate root". А как тогда быть с обычными entities. Простой пример: есть класс City по определению это entity у него есть id и name его не уникален, как его получать, добавлять, изменять в "парадигме" DDD ? Получается что для каждой сущности нужен свой репозиторий а не только для корней агрегации?
Для примера кусок простого интернет магазина, получается и для tag и для region свои репозитории? потому что то как то надо их создавать, изменять итд.
public class Tag {
private string _name ;
}
public class Region {
private string _name
}
public class City {
private Guid _id;
private string _name
private Region _region;
}
public class User {
private Guid _id;
private City _city;
// всякие методы
}
public class Product {
private Guid _id;
private City[] _cities;
private Tag[] _tags;
// всякие методы
}