2012-05-18 100 views
4

隨着PetaPoco,我應該如何處理Database類的創建?我的應用程序可能會使用各種存儲庫(不完全是DDD存儲庫,更像是網關存儲庫)來封裝查詢。PetaPoco數據庫類應該在每次請求時還是每次需要時創建一次?

由於我將有多個需要訪問同一個數據庫連接的存儲庫,我正在考慮在構造函數中創建一個創建Database類的基類,並在其析構函數中調用Dispose,並且簡單地調用此對象派生類,所以我想我不需要在這種情況下使用塊(因爲當類超出範圍它將關閉數據庫本身)。

我也考慮過在global.axax中創建數據庫對象,在Application_BeginRequest方法中,所以它在每個頁面都可用,但我不完全確定它是如何工作的(我想我需要某種DatabaseManager類實例化它?我只看到這種方法用於像NHibernate和RavenDB的東西),似乎將數據庫對象的使用推到ASPX頁面本身,而不是通過存儲庫/數據層類,這似乎很臭。

任何建議哪種方法(如果有的話)效果最好?我還看到,PetaPoco支持「共享連接」,所以我也希望看到這一點,以最大限度地減少與數據庫打開連接的數量。

回答

4

我通常爲每個請求創建一個Database。這是一個輕量級的對象。要麼在ActionFilter中使用Controller基類。

相關問題