2012-01-30 65 views
0

單用戶桌面應用程序是唯一的,因爲您知道內存數據是最新的。因此,除了創建用於間歇性數據庫操作的新上下文的痛苦之外,重新連接對象會爲整個應用程序會話僅使用一個上下文帶來任何風險(除了稍後產生的多用戶需求之外)?單用戶桌面應用程序中的上下文單例可以嗎?

回答

0

上下文是基於「事務」(即用於提交)。所以我不會讓它成爲一個單身人士。

我喜歡這篇文章:Singleton datacontext它指出:

一個DataContext是輕量級的,不貴創建

你可能會節省几几十毫秒。微觀優化這個詞讓人想起 - 在這種情況下,你可能不應該使用實體框架。

+0

我猜交易行爲是可配置的。雖然你陳述的其他事實是真實的,但他們不回答我的問題。也就是說,我想通過爲每個應用程序使用一個上下文來避免重新連接對象的複雜性。我要求這可能帶來的風險。 – HappyNomad 2012-01-30 12:33:53

+0

採取了點。在這種情況下,我沒有深入到實體框架中去解答這個問題。 – Aphelion 2012-01-30 12:38:25

0

使用單一DataContext越來越大的更改日誌過大,據我所知,並耗盡主存儲器或失去很多的變化在發生碰撞的情況下,取得了用戶的唯一的風險。我不確定交易行爲是否可配置。但是您必須管理線程同步(與多線程應用程序中的任何共享數據一樣),所以也許您最好每個數據操作使用DataContext - 例如,使用DataContext。打開Form編輯應用程序中的用戶應該打開它自己的DataContext並在保存或關閉時提交。

+0

如果它是可配置的,那麼我想你的第一點不是問題。我會發現的。是的,在多線程的情況下可能會出現線程同步問題。我實際上沒有考慮使用OK和Cancel按鈕的簡單表單UI。 – HappyNomad 2012-01-30 13:05:10

+0

這不是關於實際的'Form'本身,而是關於「行動」 - 用戶會按照一些預定義的工作流程做的事情。 – 2012-01-30 13:17:17

+0

是的,我明白了。但我正在考慮一個應用程序,其中將對象重新連接到上下文變得非常複雜。 – HappyNomad 2012-01-30 13:40:46

相關問題