2013-01-25 34 views
0

大致下面我看到的一些設計,我正在建立一個ASP.NET應用程序,其中我的每個業務對象都有一個關聯的存儲庫和服務。存儲庫使用nHibernate的ISession執行CRUD操作,並且相應的服務訪問存儲庫成員。將ObjectDataSource綁定到服務或存儲庫?

在ASP.NET中使用ObjectDataSource時,將其直接綁定到存儲庫而不是服務(因此完全跳過服務層)會被視爲不正確的做法嗎?或者在執行簡單的CRUD操作時服務層不是真的必要?

// Repository interface 
public partial interface IRepository<T> 
{ 
    void Add(T entity); 
    void Update(T entity); 
    void Remove(T entity); 
    ICollection<T> GetAll(); 
    T GetByKey(int _ID); 
} 

// Service example 
public class TestService : IService<Test> 
{ 
    private static TestRepository _repository; 
    ... 

    public virtual ICollection<Test> FindAll() 
    { 
     return (_repository.GetAll()); 
    } 

    public virtual Test FindBy(int Id) 
    { 
     return (_repository.GetByKey(Id)); 
    } 

    public virtual void Save(Test entity) 
    { 
     _repository.Update(entity); 
    } 

    public virtual void Add(Test entity) 
    { 
     _repository.Add(entity); 
    } 

    public virtual void Remove(Test entity) 
    { 
     _repository.Remove(entity); 
    } 
} 

回答

0

當然你的UI不應該知道數據訪問。即使您沒有操縱來自數據庫的數據,最好還有至少一層(服務或業務層),讓您的用戶界面與服務交互。如果我是你,我會爲Asp.net做一個poorman MVC,這樣我可以進行單元測試

+0

這就是我想的,謝謝你的確認。 – Brett