我想知道Deferred Execution
是否可以用于方法语法和查询语法中的查询,我想知道是否存在任何区别。谢谢
最佳答案
实际上,只有方法语法。使用查询语法编写查询时,编译器会将其转换为方法语法(实际上是静态方法调用)。
例:
扩展方法调用(方法语法)
var query = sequence.Select(x => x.Property);
编译为(是的,扩展方法只是用于调用静态类方法的语法糖)
var query = Queryable.Select(sequence, x => x.Property);
给出相同的结果(这是相同的Queryable / Enumerable方法调用的语法糖)
var query = from x in sequence
select x.Property;
因此,两种语法都产生相同的代码。因此,您所使用的语法没有区别-延迟执行(以及其他任何方式)将以相同的方式工作。
关于c# - LINQ/Entity Framework中的方法语法和查询语法的延期执行是否以相同的方式工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622197/