Здравствуйте, zelenprog, Вы писали:
Z>Z>lTovar = lRepository.GetTovar(lTovarID);
Z>lNewAnalog = new TovarAnalog(...);
Z>lTovar.AnalogList.Add(lNewAnalog); // здесь должна быть ошибка: метод Add не существует
Z>
Z>Однако, при формировании агрегата в эти коллекции нужно же как-то добавлять элементы.
Z>То есть эти же самые коллекции, чтобы их можно было заполнить, должны иметь метод Add. Но этот метод дожен быть доступен только при формированиии коллекции.
Z>Получается, мы имеем противоречие.
Z>Как это правильно реализовать в программном коде?
Можно сделать коллекцию приватной и работать с ней внутри, либо через специальные открытые методы (а ля tovar.AddAnalog()), а наружу выставлять ее через свойство с типом IReadOnlyCollection.