延迟执行 linq c# Tolower toupper tostring

Deferred execution linq c# Tolower toupper tostring

我想知道我什么时候这样做:

IQueryable<customer> customers = new IQueryable<customer>();
var customers = db.customers.Where(x=> x.Name.ToLower() == "john");

延迟执行是否在使用"ToLower() or ToUpper or Tostring"之类的方法时停止?

Does the deferred execution stop at the use of methods like "ToLower() or ToUpper or Tostring"?

无论调用哪个方法都不会执行x.Name.ToLower() == "john"行(实际上不会调用完整的Where())除非customers变量被具体化或枚举或者除非您通过在查询结束时调用 ToList() 将结果存入内存。