我對DTO幾乎沒有擔憂。我正在嘗試爲我的asp.net網站創建4級架構。我將有DTO,BLL,DAL和表示層。在asp.net網站中使用DTO進行4級架構
我是否需要爲每個表創建DTO?我有近100個表格,一些表格有70-100列。
對於加入5-8表的複雜查詢,我該如何處理?我是否需要爲每個表獲取DTO,然後在BLL中的所有DTO列表上運行Linq Query,然後將結果返回到aspx頁面?
如果還有其他建議,請告訴我。在此先感謝您的幫助。
我對DTO幾乎沒有擔憂。我正在嘗試爲我的asp.net網站創建4級架構。我將有DTO,BLL,DAL和表示層。在asp.net網站中使用DTO進行4級架構
我是否需要爲每個表創建DTO?我有近100個表格,一些表格有70-100列。
對於加入5-8表的複雜查詢,我該如何處理?我是否需要爲每個表獲取DTO,然後在BLL中的所有DTO列表上運行Linq Query,然後將結果返回到aspx頁面?
如果還有其他建議,請告訴我。在此先感謝您的幫助。
有些人堅持要爲每一次打電話都分開DTO。根據邏輯的複雜性,這可能會導致超過100個不同的DTO。
我更喜歡一種通用的方法,在DTO和域實體之間建立一個具有1-1對應關係的DTO模型。在這種方法中,您將擁有100個DTO表。如果您使用任何工具自動創建代碼(Codesmith,T4),創建DTO圖層可能很容易。
其他關注,返回化合物,結果可以用一個通用的DTO容器加以解決,以保持您的DTO類:
http://netpl.blogspot.com/2010/12/generic-dto-model-and-other-silverlight.html
(節開始於「通用DTO模式)
你只需要一個DTO,當你需要傳遞一個簡單的對象,或許從DAL庫(DTO =表,存儲過程結果或視圖結果)到一個域/ BLL對象,這可能是一個聚合對象提供邏輯該域的視圖而不是來自數據庫的一對一映射。這一切都取決於你如何「增長」你的應用程序。
如果你要加載類似的DTO,使用一個工具是個好主意,比如AutoMapper - 它會爲你節省很多時間來編寫無聊的映射代碼。