我需要一些有關使用IRepository <>模式和SOA的幫助。IRepository <>和SOA在一起
我正在開發一個會計應用程序,其中包括非常複雜的業務邏輯。目前我使用IRepository作爲DAL,它只執行基本的CRUD +提供IQueryable接口,一些緩存功能等等。
最重要的是,我有一個扮演Service或Facade層角色的BusinessLogic層(它們是同一件事嗎?)。所有的應用程序邏輯封裝在這裏作爲Presentation層將使用的方法。
正如我所說的所有基本的CRUD被放置在倉庫,但進一步指出,發生在BusinessLogic,例如我們可能只在我們的帳戶資料庫,這些基本的方法:
public class AccountRepository
{
public IList<Accounts> GetAll()
{
...
}
public Accounts Get(int id)
{
...
}
public IList<Accounts Where(Func<Accounts,bool> criteria)
{
...
}
public Accounts Add(Accounts item)
{
...
}
}
但要獲得一個賬號具體數目我們有這樣的服務:
public class AccountService
{
AccountRepository repos;
public Accounts FindByNumber(int AccountNumber)
{
return repos.Where(o=>o.AccountNumber == AccountNumber).FirstOrDefault();
}
}
帳戶服務可能也有其使用的實體存儲庫,並在一個事務中添加多個實體(帳戶,所有者和...)一個的createAccount()方法。
現在我想知道我是否以正確的方式使用它們?還是我錯過了一些觀點?
非常感謝,你做什麼管理交易?我的意思是你在哪一層處理它們? (我想到引擎層),你如何在這個架構師中實現它們? – sos00 2011-01-31 12:31:01