Linq to SQL實際上並不運行sql直到枚舉結果,我得到。但是,在下面的這個例子中,什麼時候會發生?這些都被捆綁成一個巨大的查詢,這些查詢是如何嚴重地將兩個表中的大部分嚴重拉入內存,以便它可以執行最後一行?什麼時候鏈接LINQ查詢執行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);
你總是可以使用一個分析器或從上下文轉儲查詢來找出:) –
在你的代碼之後(如果有的話)。 –
(假設這些存儲庫屬性都返回'IQueryable') –