2009-08-06 93 views

回答

2

不,國際海事組織。特別是,我非常純粹,所以我不認爲我的UI應該有什麼與數據訪問有關。這是存儲庫類的工作。一個存儲庫類應該同樣與http請求無關。

因此,通過分離問題,這裏唯一合乎邏輯的答案是「否」。


Re being expensive(comments);它實際上收益花費的時間越長,你使用它:

  • 對象/身份追蹤器會慢慢積累你取
  • 每一個獨特的記錄變更跟蹤器有更多的工作,以監控
  • 你得到更多的陳舊的機會(外的日期)記錄(讓錯誤的數據是一個明確的成本)

,並通過允許其活過的DAL,你也不必擔心線程(這是網絡更是如此 - 請求,在那裏你可以得到AL l 分類的同一會話請求的有趣組合)。

LINQ-to-SQL不提供太多緩存;它具有有限的支持身份管理器的短路身份查找(所以如果你要求Single(x=>x.Id == 12345),並且它已經看到記錄12345,它不會擊中數據庫)。但是,大部分時間它會碰到數據庫。而數據庫,其中一個更大的成本是新連接的成本;這可以通過SqlConnection上的連接池非常有效地緩解(針對網絡應用程序)。

+0

那麼你會在哪裏存儲它?打開/關閉每個電話? – mrblah 2009-08-08 17:21:43

+0

我會的,是的。如果你在數據層有幾個緊密耦合的操作,那麼你可能會分享它... – 2009-08-08 19:04:50

+0

是不是像nhibernate中的會話對象那樣昂貴的對象? – mrblah 2009-08-09 22:57:41

相關問題