到目前爲止,我還沒有找到對我的問題的答案,我想我有一段時間要問我的第一個問題。開始。從業務層中的數據訪問層過濾結果
我有一個數據訪問層,負責與各種數據存儲元素進行交互,並在查詢事物時返回POCO或POCO集合。
我有一個位於此之上的業務層,負責實現從數據訪問層返回的對象的業務規則。
例如,我有一個SQL Table of Dogs,我的數據訪問層可以返回那個Dog列表作爲一個Dog對象的集合。然後,我的業務層將執行諸如篩選低於特定年齡段的狗,或根據業務規則必須發生的任何其他過濾或轉換。
我的問題是這樣的。根據相關記錄處理過濾對象的最佳方法是什麼?假設我希望所有擁有貓的人。現在我的數據訪問層可以返回所有的貓和所有的人,但是不會爲我做任何過濾。
我可以通過不同的數據訪問方法實現濾波(即DAO.GetCatPeople()),但是這可能會變得複雜,如果我有相關的屬性或關係的多種處理
我可以從兩個都返回並在業務層完成自己的所有匹配,這看起來像很多額外的工作,並沒有充分利用SQL服務器。
我可以寫一個數據過濾接口,如果我的數據訪問層發生變化,這個層也必須改變。
這裏有一些已知的最佳實踐,我可以從中受益嗎?