2010-11-24 163 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无污物(工作单位)将在分类完成。 那么这里最好的做法是什么?

Thnaks,

回答

0

由于mentioned in this post,你可能想在之间的ServiceLayer。服务层负责将元逻辑与控制器分离。随着代码变得越来越复杂,存储库需要相互了解,这是不好的。然而,对于一项服务,这完全没问题。存储库然后是非常轻量级的并且不了解业务逻辑。

然而ServiceLayer有。例如,如果没有Categories集合/表,但类别嵌入在产品中,则不应该有一个假装的类别存储库。但是,ProductService可能会提供方法AllCategories()

+0

谢谢,但不能处理它自己的类?在这种情况下,ProductRepository应该处理与产品相关的所有工作,而不涉及类别 – paragy 2010-11-24 12:35:42