我正在寫一個非常簡單的ASP.net項目。它使用Linq2Sql DataContext訪問存儲過程。有一個IDisposable類在它的構造函數中創建一個新的DataContext,並將其置於它的dispose中。將我的DataContext存儲在會話內存中是一個好主意嗎?
只要有可能我組裏的共同要求:
using(var dc = new MyDataAccessClass())
{
//All the data requests in here
}
// Do stuff with the data here
因此,有遍佈大多在用戶控件的代碼相當多的這些,我只是在想,如果它將使意義,創建單DataAccess類在起始頁(或母版頁)的PageLoad中,將其存儲在會話內存中,並引用所有UserControls中的內容,然後將其丟棄到PreRender階段。
所以這是我的問題,這是一個壞主意嗎?我想這會涉及到數據庫的一些懸掛連接,因爲異常或調試會阻止PreRender的運行。 也許檢查MasterPage的Load以查看該會話變量中是否有任何內容,如果是,則對其進行分類。
還是有更聰明的方式來分享整個頁面生命週期的DataContext沒有你的DBA想打你的鍵盤?
看看這個awser:http://stackoverflow.com/questions/226127/multiple-single-instance-of-linq-to-sql-datacontext –
@FelipeOriani蕩,我保證我花了好60秒尋找重複。對不起這個。 –
我認爲在會話中存儲上下文是一個壞主意。我不知道這是否是最佳做法,但可以將其存儲在System.Web.HttpContext.Current.Items中。至少它只要求範圍。 – maralfol