讓我們假設我有一個可重用的業務層,進一步利用使用Entity Framework 4.0實現的數據訪問層。業務層返回/消費的實體是自我跟蹤的,允許我們使用這些類型的實體提供的所有好東西。在asp.net會話中存儲實體框架自我跟蹤實體,好主意?
我希望能夠跨職位背後存儲我工作的實體(爲了避免每次都重新查詢)。基本上讓我們假設我有一個帶有10個項目的分頁GridView,並且像DetailsView一樣編輯這些項目。每當您在網格中選擇一個新行時,詳細信息視圖會更新所選行的信息。我的首選是僅在頁面的初始請求中查詢實體並將其存儲在會話中。隨後,我列出了一些實體,我可以使用這些實體並最終修改並將所有更改發送回業務層。
我真的很想使用會話而不是視圖狀態來減少頁面負載(自我跟蹤實體很重)但是我真的很喜歡這種狀態,因爲當用戶離開頁面時沒有剩餘效應。
一些強說愁我的事情是:
- 當用戶從導航頁面到另一個頁面,距前一頁面的實體仍在開會。我總是可以在頁面加載時做一些事情來做家務工作。不知道這是不是很好的做法。
- 我很擔心人們打開瀏覽器標籤並將兩個視圖放入同一頁面,這似乎可能會造成問題。
- 這是一個很好的方法嗎?好像我試圖擁有所有世界上最好的東西,只需要簡單地重新查詢實體的每個帖子並支付數據庫旅程的50-100ms命中時間,肯定會容易得多。
您的想法非常感謝。