确认延迟加载linq到我的存储库的实体[简单]

时间:2010-12-22 18:28:37

标签: linq-to-entities lazy-loading lazy-evaluation

简单问题:

我的存储库的一部分看起来像这样

public class CustomerRepository : IRepository<Customer>
{
   public IQueryable<Customer> GetAll()
   {
     MyDataEntities ent = new MyDataEntities();
     return from c in ent.Customers  select c;
   }
}

现在假设我有10,000个客户,如果我这样做:

var cus = from c in GetAll() where c.FirstName == "jon" select c;

请告诉我,GetAll()不会加载所有这10,000个但是懒得加载整个东西?这是我需要在某处设置还是自动发生?

我不知道如何检查它是否是延迟加载的,当实际的sql查询被吐入sql server时有什么可看的吗?

抱歉无知。

1 个答案:

答案 0 :(得分:1)

是的,它会。由于您的GetAll正在返回IQueryable。验证这种情况的一种简单方法是打开探查器并查看正在执行的查询。或者调查调试器中的IQueryable对象。