Как я упоминал ранее, сервисный уровень поможет вам решить эту проблему.Сервисный уровень является точкой контракта между пользовательским интерфейсом и промежуточным уровнем.Это может быть служба WCF или простая реализация службы, которую я покажу ниже.
public interface IMyProductService
{
IList<Product> GetProducts();
IList<Product> GetProductsByCategory();
IList<Category> GetCategories();
}
public class MyProductService : IMyProductService
{
IProductRepository _prodRepo;
IProductCategoryRepository _catRepo;
public MyProductService(IProductRepository prodRepo, IProductCategoryRepository catRepo)
{
_prodRepo = prodRepo;
_catRepo = catRepo;
}
// The rest of IMyProductService Implementation
}
Ваш контроллер MVC будет иметь ссылку на IMyProductService, вероятно, использующую внедрение конструктора с выбранной платформой DI.