我已經實現了存儲庫模式。我有我的基礎模型類,它們不過是標準的C#類。我有我的每個模型的存儲庫類。我有我的DbContext
類。我使用的是Ninject,所以除了我的模型之外,所有的東西都首先被定義爲接口。眼下,訪問我的數據,我的代碼看起來是這樣的:如何從單個存儲庫轉換到服務層?
using (var context = m_kernel.Get<IPortalContext>())
{
var accounts = m_kernel.Get<IAccountRepository>(new ConstructorArgument("context", context));
foreach (var account in accounts.All())
{
Assert.IsNotNull(account);
}
}
注:我不知道是否有更好的方法來說,我想通過這一背景下進入IAccountRepository構造,但這是下一次。
如您所見,我的存儲庫類都需要一個上下文實例。這就是我在同一個環境下工作,就像一個工作單位一樣。
我的問題是,我怎樣才能爲我的業務邏輯引入服務層?現在,我的存儲庫只有簡單的Get,Delete,All,Insert方法。我想爲我的特定業務邏輯和驗證提供服務層。什麼是最好的方式去做這件事?
乍一看,我可以製作服務類,就像我的回購類一樣,接受上下文並執行業務邏輯,然後使用回購類。這基本上隱藏了所有的知識庫。
這是一個很好的方法嗎?