這是構建複雜對象(急切加載)的更好方法。對存儲過程的單個調用返回多個結果集或對存儲過程的多個調用每個都有一個結果集?我在.NET中使用T4 /文本模板構建我的DAL,所以我傾向於後者。數據訪問設計:多個結果集單個存儲過程或每個存儲過程的單個結果集
謝謝!
這是構建複雜對象(急切加載)的更好方法。對存儲過程的單個調用返回多個結果集或對存儲過程的多個調用每個都有一個結果集?我在.NET中使用T4 /文本模板構建我的DAL,所以我傾向於後者。數據訪問設計:多個結果集單個存儲過程或每個存儲過程的單個結果集
謝謝!
這取決於您的應用程序的整體架構設計模型。如果您使用的是Table Data Gateway或Active Record,那麼後者可能會更好。如果您使用的是所謂的Domain Model或Domain driven Design,那麼前者更合適。
我不記得上次我們寫了一個一次返回多個結果集的存儲過程。這實際上是一項總體收益,這很少見。我可以想到的唯一的原因就是爲了(a)表現 - 例如,如果SELECTS需要臨時表或大量的設置,這些設置對於所有這些都是通用的,或者(b)如果數據在調用之間有變化的風險並且想要使用可序列化的隔離語義。
如果所有的行集都是相互獨立的並且沒有共同設置,那麼一定要將它們分開。假設您使用較低級別的連接協議(例如TCP/IP或命名管道,而不是像XML over SQL之類的某種類型的技術),往返的成本並不是真正的重要因素。更重要的是,如果您可以單獨調用sprocs,那意味着您可以異步並行地調用它們,甚至可以在需要幫助時取得優異的性能。
懷疑它必須是你的電話 - 你爲了不那麼複雜/更易維護的代碼而犧牲性能。 – Rikalous