2010-11-24 2 views
0

Мои извинения, поскольку этот вопрос трудно выразить с помощью приятных слов.Репозиторий Шаблон лучших практик

У меня вопрос, похожий на this.

Это нарушение Образцового шаблона? для использования Reposiotry, созданного для продукта, используется для получения всех категорий?

 viewModel.Categories= productRepository.FindAll<Category>(c => c.Id > 0).ToList();//is it Correct with Pattern 

Хотя я могу получить подобный результат с этим также,

 viewModel.Categories = categoryRepository.GetAll();// getting Categories by creating new instance of categoryRepository 

В приведенном выше примере, мне нужно, чтобы показать категории по мнению продукта, только Diplay не CRUD (единицы работы) будет осуществляться по категориям , Так что лучше всего здесь?

Thnaks,

ответ

0

Как mentioned in this post, вы, вероятно, хотите иметь ServiceLayer между ними. Уровень обслуживания отвечает за отключение мета логики с вашего контроллера. По мере того, как ваш код становится более сложным, будет необходимо, чтобы репозитории знали друг друга, что не очень хорошо. Однако для службы это нормально. Хранилища тогда очень легки и не имеют понимания бизнес-логики.

ServiceLayer, однако имеет. Например, если нет Categories Collection/Table, но Категории встроены в Продукты, не должно быть CategoryRepository, который притворяется. Однако, ProductService может использовать метод AllCategories().

+0

Спасибо, но репозиторий dosen't должен обрабатывать свой собственный класс? здесь, в случае, если ProductRepository должен обрабатывать всю работу, связанную с продуктом, и связанную с ней категорию – paragy 2010-11-24 12:35:42

Смежные вопросы