我很確定我對如何實現Repository Pattern有了很好的理解,但是我陷入了關於複雜查詢/方法的決策循環中。存儲庫模式:複雜的方法去哪裏?
如果我想獲得所有在用戶表上具有特定字段值的用戶或用戶,那麼很明顯,它將進入用戶存儲庫。但是,如果我有更復雜的查詢,例如所有完成視頻課程的視頻課程的用戶,該怎麼辦?在我的模型中,這個查詢大約有6個表。
我希望能夠爲我們的存儲庫做一些事情,如if(user.completedVideoRequirement),但我很難說服自己,用戶存儲庫是這個地方。這對我來說似乎是對的,但我可以很容易地將自己說出來。
什麼是正確的方法?
編輯:如果我返回數據庫實體以外的信息(即返回true/false或其他一些int)會怎麼樣。如果這甚至發生在存儲庫級別,或者我應該像if(users.CompletedVideoRequirement.Any())那樣做? 我想這對我來說仍然是在用戶存儲庫上,因爲它是關於用戶的信息,但從技術上講,它也是關於視頻的信息。
你在使用ef嗎?如果是,那麼你應該有一個系統中所有表的上下文。如果是,那麼您可以從一個存儲庫訪問任何具有該上下文的表。它有什麼問題? – cassandrad