看看我的控制器(我使用依賴注入到經理的依賴):帶有多個存儲庫和服務的.NET MVC控制器?
public RoleController(IRoleRepository roleRepository, ISiteRepository siteRepository, IUserRepository userRepository, IDbContext dbContext)
{
_roleRepository = roleRepository;
_siteRepository = siteRepository;
_userRepository = userRepository;
_dbContext = dbContext;
}
有許多依賴一類是一個代碼味道?對?
但是,在我的示例中,我需要將Users
和Sites
關聯到Role
,然後我需要這些依賴關係來完成此關聯。
郵件列表中的一些人我被告知,擁有太多的依賴關係是一些跡象表明某些東西可能是錯誤的。但我沒有別的辦法。我分開了自己的責任,在那種情況下我不知道該怎麼處理?有什麼問題嗎?
更新:
我需要存儲庫和的DbContext因爲的DbContext是我的UnitOfWork,倉庫不保存。
本示例是一個簡單的CRUD,其中包含一些其他功能,如具有GRID的視圖中的關聯。
更新2:
我使用的是架構在我的UI層是MVC。
通常我只會創建聚合根的存儲庫,而不是每個實體。我不知道你的域名,但我的直覺告訴我你有太多的存儲庫。另外,爲什麼你需要存儲庫和dbcontext?最後,我通常更喜歡在「服務」中執行「編排」類型的業務活動,並讓服務處理存儲庫等。控制器的依賴關係只會變成服務。 – Brook
@Brook查看更新。 –
可能的重複[在asp.net-mvc中,是否有更優雅的方式使用IOC將多個存儲庫注入控制器?](http://stackoverflow.com/questions/7311623/in-asp-net-mvc- is-there-a-more-elegant-way-using-ioc -in-inject-mutiple-repositor) – Omar