2010-02-03 102 views
3

我想知道是否延遲加載==延期執行?推遲執行

+1

請包含更多標記以指示您正在討論的編程語言/框架。 – 2010-02-03 17:35:10

回答

9

「延遲加載」通常用來表示如果你有一個指向一些其他實體,解引用代碼中的財產屬性的實體的實例會導致數據庫查詢是爲了實現其他實體,如果它尚未加載。

E.g:

var foo = Context.Foos.First(); 
var bar = foo.Bar; // with lazy loading, this causes a DB query for foo.Bar; 

「延遲執行」通常用來指直到IQueryable迭代沒有數據庫查詢將在所有發行。

E.g.

var foos = context.Foos.Where(f => f.Id == id); // no db query ; deferred 
var foo = foos.First(); // now a query is issued. 
var count = foos.Count(); // another query is issued 
+0

我試圖輸入(並在同一時間直接在我的頭上)。 +1爲最快的手指:) – 2010-02-03 17:59:45

+1

我不相信海報沒有標記爲答案。 – 2012-05-30 13:42:11

-1

我懷疑你認爲實體框架4中的「延遲加載」,實際上它與延遲加載相同。