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

seg*_*aco 7 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方法.谢谢.

Cha*_*ran 4

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

  • 那么,当 Catalog Service 在一种服务方法中使用 ProductRepo 更新产品并使用 CategoryRepo 更新类别时会发生什么?这是否意味着 ProductRepo 更改是在一个事务中完成的,而 CategoryRepo 更改是在另一事务中完成的?我一直认为回购操作是离散的,除非您也允许 ProductRepo 更改类别。人们在现实世界中做什么? (3认同)