На уровне обслуживания, как вернуть парную сущность из репозитория, который отвечает за одну сущность

Если я правильно знаю, что каждый репозиторий находится на Entity
У меня есть и ProductService, тогда мне нужно получить изображения текущего продукта, для изображений нет репозитория.
И мой репозиторий продукта отвечает за Entity продукта.
Репозиторий просто возвращает нам объекты Entity, потому что репозитории не должны знать об объектах DTO, если я знаю, что это правильно.
Вкратце Как я могу вернуть сущность «Изображения». Как мне получить текущие изображения выбранных продуктов.

Между продуктом и внешним ключом изображений.

Но продукт может иметь 10.000 строк изображения в базе данных.

Мне нужны данные IQueryable из них 10 на 10.

Я попробовал Product.Images бла бла ... но меня это не удовлетворило.

Или мне следует создать новый ImageRepository и ввести его в службу продукта.

Затем используйте его с отфильтрованным методом, который находится внутри BaseRepository.

Как мне его спроектировать?


person MrCode    schedule 04.09.2013    source источник


Ответы (1)


Оставьте репозиторий продукта в покое. Вы можете изменить свой уровень обслуживания, чтобы он принимал интерфейсы вместо BaseRepository. Этот интерфейс может работать как с EF, так и с каким-либо другим типом (не только с репозиторием EF \ ORM). Существуют инструменты рефакторинга, которые могут помочь в этом путем создания интерфейса из существующего BaseRepository (например, ReSharper).

person user2747113    schedule 04.09.2013
comment
Я оставляю в покое репозиторий продуктов. Затем поместите несколько пользовательских методов в базовый репозиторий, которые реализуют Ibaserepository. Но у этих функций есть статические сущности. Они не являются общими. Поскольку общий во время выполнения BaseRepository ‹TEntity› является сущностью Product, потому что он вызывается службой продукта. Там я исправил это с помощью статических объектов. Может быть, у кого-то есть более хорошая идея! - person MrCode; 05.09.2013