2016-05-08 50 views
0

我認爲有兩種主要方式(或更多)來定義實體框架語境最佳場所/的方式來定義的上下文實體框架

  1. 定義一個語境,在整個應用程序,然後在使用它所有這 生命週期,所以這裏的內容將會被置於關閉 應用程序後,我定義在主窗口這個變量然後我用它在我的所有應用程序的窗口和用戶Conteols

    公共靜態SC_Context上下文=新SC_Context() ;

  2. 定義上下文,每次我們想要處理數據庫並在此之後處置該上下文。以這種方式,使我局部類和內部編寫方法:使用

    (SC_Context上下文=新SC_Context()){ // 唧唧歪歪 }

事實上,我使用的兩種方式在許多應用程序,網站和Windows應用程序中,我看到了許多使用它們的樣本和開發人員。

只要我的問題是: 哪家好 - 使用對整個應用程序或使用一個上下文的每一道工序與DB-爲App性能和內存消耗和爲什麼一個方面?

+0

標記爲重複,但除此之外,此問題對於Stack Overflow而言基於觀點。也就是說,我讀過的最棒的是[this](http://mehdi.me/ambient-dbcontext-in-ef6/)。 –

回答

0

根據MSDN(或此blog),您應該使用第二種方式,使用聲明。當您使用使用時,編譯器會自動創建一個try/finally塊並在finally塊中調用dispose。

這裏有上下文的壽命決定當一些一般原則:

  1. 當使用Web應用程序的工作,每 要求使用上下文實例。
  2. 使用Windows Presentation Foundation(WPF)或Windows 窗體時,請使用每個窗體的上下文實例。這使您可以使用上下文提供的變更跟蹤功能 。

總之,規則是:每個請求的上下文和每個表單的生命週期的上下文。

+0

Thnx,這些鏈接非常有用:) –

+0

謝謝。如果您發現它對您有用,請註冊或標記爲答案:) – AnhTriet