2010-11-24 155 views
0

我對這個問題的道歉很難用良好的詞表達。存儲庫模式最佳實踐

我有類似的問題this

它是否違反版本庫模式?使用爲產品創建的Reposiotry是否用於獲取所有類別?

 viewModel.Categories= productRepository.FindAll<Category>(c => c.Id > 0).ToList();//is it Correct with Pattern 

雖然我可以得到這也是類似的結果,

 viewModel.Categories = categoryRepository.GetAll();// getting Categories by creating new instance of categoryRepository 

在上面的例子中,我需要顯示在產品視圖類,僅diplay無污物(工作單位)將在分類完成。 那麼這裏最好的做法是什麼?

Thnaks,

回答

0

由於mentioned in this post,你可能想在之間的ServiceLayer。服務層負責將元邏輯與控制器分離。隨着代碼變得越來越複雜,存儲庫需要相互瞭解,這是不好的。然而,對於一項服務,這完全沒問題。存儲庫然後是非常輕量級的並且不瞭解業務邏輯。

然而ServiceLayer有。例如,如果沒有Categories集合/表,但類別嵌入在產品中,則不應該有一個假裝的類別存儲庫。但是,ProductService可能會提供方法AllCategories()

+0

謝謝,但不能處理它自己的類?在這種情況下,ProductRepository應該處理與產品相關的所有工作,而不涉及類別 – paragy 2010-11-24 12:35:42