Б>Эта вся логика должна находиться внутри репозитория.
Б>Просто создай метод вида TovarRepository.GetListWithAnalogAndPack. Или параметризируй поиск товаров TovarRepository.GetList(withAnalog=true, withPack=true). Б>Внутри, на уровне базы, сможешь сделать все, что нужно.
Ты предлагаешь сделать один Репозиторий для всех Сущностей.
Я читал, что это неправильно. Для каждой сущности должен быть свой репозиторий.
У меня есть сущности "Товар", "Аналог", "Упаковка". Соответственно должно быть три Репозитория.
Кроме того, этот подход по меньшей мере необычный.
Например, выполнив метод "TovarRepository.GetListWithAnalogAndPack" я получу три списка-коллекции?
Обычно метод Репозитория возвращает одну коллекцию.
Б>P.S. Скорее всего решение с временной таблицей плохое. Лучше все сделать в одном запрос, БД сама разберется, что надо создавать.
Как минимум у меня должно быть два запроса: нужно получить список аналогов и список упаковок.
Хотя, в принципе я не против сделать это одним запросом.
Только как это "вписать" в Domain-Model?
Б>P.P.S. Repository не должен быть синглтоном
Используется Репозиторий как обычный класс.
Хотя по сути он не имеет состояния.
То есть чисто теоретически, если его использовать не как обычный класс, а как синглтон, то никакой разницы не будет.