Стиль является вашим корневым агрегатным объектом. Это то, что вы строите свой репозиторий вокруг.
Поскольку каждый стиль имеет определенное подмножество цветов и размеров, разрешенных для этого стиля, каждый стиль должен содержать список цветов и стилей.
public class Style
{
public IList<Color> Colors { get; set;}
public IList<Size> Sizes { get; set;}
}
В вашем репозитории будет метод FindAll () для возврата всех стилей. Каждый стиль имеет свой собственный список цветов и размеров, поэтому нет необходимости снова нажимать на хранилище, чтобы получить их. Когда пользователь выбирает определенный стиль из выпадающего списка (надеюсь, вы связали объект Style), вы можете просто получить список цветов и размеров из выбранного объекта и заполнить другие выпадающие списки.
Когда пользователь выбирает определенный стиль, цвет и размер, я бы предположил, что он сохраняется в отдельном классе, например, в классе SelectedStyle, который содержит только одно свойство цвета и размера.
public class SelectedStyle
{
public Color Color { get; set;}
public Size Size { get; set;}
}