何时链式linq查询执行sql?

时间:2017-04-14 20:34:16

标签: c# sql-server linq

Linq to SQL实际上并没有运行sql,直到枚举结果为止,我得到了。但是,在下面这个例子中是什么时候发生的?这些都捆绑在一个巨大的查询中,一些如何或者是否严重将两个表中的大部分拉入内存,以便它可以执行最后一行?

result = _repository.LocationHandler.Locations(id).Where(x => x.IsActive);

paymentServiceProfiles = _repository.Context.PaymentServiceProfiles.Where(x => !x.IsDeleted && x.IsActive);

terminals = _repository.TerminalHandler.Terminals().Where(x => x.IsActive && x.PaymentServiceProfiles.Intersect(paymentServiceProfiles).Any());

result = result.Where(x => terminals.Count(y => y.LocationId == x.Id) > 0);

1 个答案:

答案 0 :(得分:1)

所有四条线路正在准备一个大型的线路。查询。如果您以后不使用结果数据,则根本不会执行此查询。但是,正如其他人所提到的,使用SQL Server Profiler(SSMS => Tools => Sql Server Profiler)是如何自己回答这类问题的最佳方式。

相关问题