EntityFramework 消極式載入,消極式載入

來源:互聯網
上載者:User

EntityFramework 消極式載入,消極式載入

消極式載入:即當我們需要用到的時候才進行載入(讀取)

 

    當我們希望瀏覽某條訂單資訊的時候,才顯示其對應的訂單詳細記錄時,我們希望使用消極式載入來實現,這樣不僅加快的了讀取的效率,同時也避免載入不需要的資料。消極式載入通常用於foreach迴圈讀取資料時。

 

EF中支援消極式載入,是因為進行查詢,返回DbQuery類

為了展示消極式載入,所以使用 sql server profiler進行查看 資料的查詢。

 

   Sql server profiler 用於監視 sql的串連執行情況。建立一個新的跟蹤。

當我們使用DbContext類對EF進行操作時候:

已經執行完查詢了,但是查詢跟蹤器裡面為空白:

只有在使用查詢結果的時候,EF才會去執行sql語句。

EF對是對實體進行操作,映射到資料庫。其實,就是要想對資料庫進行操作 直接 對實體 就行操作就行了。

更符合物件導向的思想了。

 

 

直接載入的思想:

   1、聲明變數

   2、要查詢的條件

   3、根據查詢條件  去查詢 然後 把結果存放在變數中

 

   用的時候,直接把變數拿過來用

 

消極式載入的思想:

   1、聲明變數

   2、輸入要查詢的條件

 

   用的時候,把變數和條件 都拿過來,執行完後 在用

 

 

兩種思想,分別處理不同的情況。就和 真假分頁 是一個道理。

   1、如果是在foreach迴圈中載入資料,那麼使用消極式載入會比較好,因為不需要一次性將所有資料讀取出來,這樣雖然有可能會造成n次資料庫的查詢,但是基本上在可以接受的範圍內。

   2、如果在開發時就可以預見需要一次性載入所有的資料,包含關聯表的所有資料,那麼使用使用貪婪載入是比較好的選擇,但是此種方式會導致效率問題,特別是資料量大的情況下。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.