我正在考慮重構存儲庫我必須提高其靈活性並減少方法數量。存儲庫以linq表達式進行過濾
凡有以下幾種方法:
Collection GetAllUsersByRole(Role role)
User GetUserByuserName(string userName)
...我想有一個單一的方法服用LINQ表達式:
ICollection GetUsers(Expression e)
{
//retrieve user collection from store
//apply expression to collection and return
}
這是一個合理的做法?據推測,我會失去一些效率,因爲每次都需要檢索和過濾完整用戶集合,而不是根據某些硬編碼標準檢索一部分用戶。
編輯:NHibernate在我的實現中提供了ORM。
「最簡單的方法是將所有對象帶入內存,然後使用謂詞表達式進行過濾。」這是一個很好的觀點,這個類可以是一個翻譯到另一個邏輯,但使暴露方法的數量更小。 – 2010-02-03 14:25:32