存储库模式最佳实践

时间:2010-11-24 11:45:09

标签: c# repository-pattern

我的道歉,因为这个问题很难用好话来表达。

我的问题类似于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

在上面的例子中,我需要在Product视图中显示类别,只有diplay no crud(工作单元)将在Category上完成。 那么这里的最佳做法是什么?

Thnaks,

1 个答案:

答案 0 :(得分:0)

作为mentioned in this post,您可能希望在它们之间安装ServiceLayer。服务层负责将元逻辑与控制器分离。随着代码变得越来越复杂,存储库需要相互了解,这是不好的。但是,对于服务,它是完全可以的。然后,存储库非常轻量级,并且不了解业务逻辑。

然而,ServiceLayer有。例如,如果没有Categories集合/表,但类别嵌入在产品中,则不应该有假装的CategoryRepository。但是,ProductService可以使用方法AllCategories()