在存储库之间调用方法 - 存储库模式

时间:2009-03-21 19:14:01

标签: asp.net-mvc repository-pattern

我正在使用ASP.NET MVC应用程序中的存储库模式(如http://www.asp.net/mvc站点中的示例)。我有两个存储库,一个名为CategoryRepository,另一个名为ProductRepository。我还使用了两个服务,CategoryService和ProductService来验证和调用存储库方法。我需要ProductService中的类别列表,一个已经在CategoryRepository中实现的返回方法。我的问题是,从ProductService调用CategoryRepository中存在的ListCategories方法的正确方法是什么?我不想在ProductRepository(DRY哲学)中实现另一个ListCategories方法。感谢。

2 个答案:

答案 0 :(得分:4)

我建议将类似的存储库滚动到一个服务中。因此,如果您正在创建电子商务应用程序,请将ProductRepository,CategoryRepository等汇总到类似CatalogService的内容中,并让它托管所有相关的存储库。

答案 1 :(得分:3)

一种选择是为ProductService类提供CategoryService的实例。

public class ProductService {
    ICategoryService _categoryService = null;

    public ProductService(ICategoryService categoryService) {
        _categoryService = categoryService;
    }
}

然后,您可以从ProductService访问类别列表,而无需与任何特定的CategoryService实现建立直接耦合。

相关问题