2012-06-28 42 views
1

您能澄清一下嗎?關於延遲加載的澄清-LINQ查詢

public static void MyMethod() 
     { 
      var context= new MyModel.Entities(); 

      //myQuery will not have result yet 
      var myQuery= from a in context.MyEntity where a.id==10 select a; 

      // object is populated in myqueryResults. 
      var MyqueryResults= myQuery.ToList();  
     } 

我對延遲加載的理解是,只有當你需要它們時,屬性纔會被填充。

問題: 直到我們說.ToList(),myQuery中沒有值返回。所以,這也是一個懶加載?

回答

1

這不是延遲加載,而是延遲執行。兩次調用ToList將執行兩次SQL。結果不是「緩存」的地方。

其實,ToList不是觸發器,而是枚舉序列。這是一個區別。