Asp.net mvc 存储库之间的调用方法-存储库模式
我正在ASP.NETMVC应用程序中使用存储库模式(如站点中的示例)。我有两个存储库,一个叫做CategoryRepository,另一个叫做ProductRepository。我还使用两个服务,CategoryService和ProductService来验证和调用存储库方法。我需要ProductService中的类别列表,CategoryRepository中已经实现了返回一个类别的方法。我的问题是,从ProductService调用CategoryRepository中存在的ListCategories方法的正确方法是什么?我不想在ProductRepository中实现另一个ListCategories方法(DRY哲学)。谢谢。一个选项是为ProductService类提供CategoryService的实例Asp.net mvc 存储库之间的调用方法-存储库模式,asp.net-mvc,repository-pattern,Asp.net Mvc,Repository Pattern,我正在ASP.NETMVC应用程序中使用存储库模式(如站点中的示例)。我有两个存储库,一个叫做CategoryRepository,另一个叫做ProductRepository。我还使用两个服务,CategoryService和ProductService来验证和调用存储库方法。我需要ProductService中的类别列表,CategoryRepository中已经实现了返回一个类别的方法。我的问题是,从ProductService调用CategoryRepository中存在的ListCat
public class ProductService {
ICategoryService _categoryService = null;
public ProductService(ICategoryService categoryService) {
_categoryService = categoryService;
}
}
然后,您可以从ProductService访问类别列表,而无需建立与任何特定CategoryService实现的直接耦合。我建议将类似的存储库合并到一个服务中。因此,如果您要创建一个电子商务应用程序,请将ProductRepository、CategoryRepository等汇总到CatalogService之类的内容中,并让它承载所有相关的存储库。+1。一般来说,这会使您的服务在业务而非实体行上被拆分。那么,当目录服务使用ProductRepo更新产品,使用CategoryReporto更新一个服务方法中的类别时,会发生什么情况呢?这是否意味着ProductRepo更改在一个事务中完成,CategoryRepo更改在另一个事务中完成?我一直认为回购操作是离散的,除非您允许ProductRepo也更改类别。人们在现实世界中做什么?