关于延迟加载-LINQ查询的澄清

时间:2012-06-28 15:01:17

标签: entity-framework

你能澄清一下吗?

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 个答案:

答案 0 :(得分:1)

这不是延迟加载而是延迟执行。两次调用ToList将执行SQL两次。结果不会在某处“缓存”。

实际上,ToList不是触发器,而是序列的枚举。这是一个区别。