我現在在Web應用程序中從頭構建一個新的應用程序。
(該技術是Asp.Net
和我使用的ORM是Entity Framework
。如果它的事項)「每個請求的會話」模式是否利用緩存? (「每個會話的會話」或「每個請求的會話」)
我不確定的,如果每個請求廣泛使用的模式會議確實是一個很好的一個。
正如我所看到的,該模式的優點在於,直到數據庫會話崩潰時,緩存纔會增加\因爲太大而效率低下。
但是不是每個請求的新會話太多?這意味着每一次服務器調用都會重置緩存,甚至像auto-complete這樣的簡單ajax請求也會有一個全新的緩存,實際上對於緩存重置的每一次擊鍵都是如此。
在一個請求中查詢同一個對象實體行的機會很小。
是不是會話每次會話是一個更好的模式?它同時具有這兩個優點含義
- 緩存將永遠不會增長。
- 緩存可以實際使用...
所以...... 爲什麼每個請求會話的用途很廣泛,每個會話會議是不是?
澄清:
- 當我寫ORM會話它同時適用於
NHibernate's session
和EntityFramework's DbContext
。 - 我的意思是在每個請求上flush-commit-saveChanges of session \ dbcontext。
1.是的我的意思是** EntityFramework ** - 'DbContext' ** NHibernate ** - 當我寫了_session_時的會話;我的最後一個應用程序使用Nhibernate ... 2.關於髒數據,我的意思是在每個請求上flush-commit-saveChanges of session \ dbcontext。 – gdoron
關於意外保存 - 當前一個請求正在運行時可能會出現其他請求 - 數據已被修改但尚未提交,並且可以在第一個請求之前調用Submit。但是,如果您的ORM支持對會話實例的併發和線程安全訪問,則每個會話的一般會話都可以成爲解決方案。但我不認爲表現會更好。 – STO