LINQ 후자 가공 동작
-
09-09-2020 - |
문제
이 상황에서 :
var allCustomers = from c in customers select c;
var oldCustomers = from o in allCustomers where o.age > 70 select o;
.
는 여기서 절이 데이터베이스 도달?
해결책
나는 당신이 의미한다고 생각합니다 :
var oldCustomers = from o in allCustomers where o.age > 70 select o;
.
및 예, 데이터베이스에 도달합니다.
LINQPAD를 사용하여 생성 된 SQL 코드를보십시오.예제는 다음과 같습니다.
필드가있는 Actor
테이블이 있습니다.
Id | Name | Age
코드 :
var x = from c in Actors where c.Name.Contains("a") select c;
var y = from c in x where c.Age > 0 select c;
.
번역 :
-- Region Parameters
DECLARE @p0 Int = 0
DECLARE @p1 NVarChar(3) = '%a%'
-- EndRegion
SELECT [t0].[Id], [t0].[Name], [t0].[Age]
FROM [Actor] AS [t0]
WHERE ([t0].[Age] > @p0) AND ([t0].[Name] LIKE @p1)
.
오직 하나의 쿼리를 믹스하는 방법을 볼 수 있습니다.
기억하십시오, iEnumerables는 지연되어 있으므로, 요소를 알아야하지 않는 한 (또는 그들이 그들을 반복하기 때문에, 또는 .Count()
가 얼마나 많은 항목이 있는지, etc 등을 보려면 쿼리 / 작업을 수행하지 않습니다.
제휴하지 않습니다 StackOverflow