LINQ referes의 문맥에서 "지연 쿼리 평가"란 용어는 무엇입니까? (예를 들어주십시오).LINQ referes의 컨텍스트에서 "지연 쿼리 평가"란 용어는 무엇입니까?
답변
W LINQ와 관련하여 빌드 한 쿼리는 결과가 실제로 열거 될 때까지 평가되지 않습니다. 쿼리를 생성 할 때 표현 트리, 대리자 시퀀스 또는 yield 문과 같은 다른 언어 구문을 사용하여 나중에 실행을 연기 할 수 있습니다. 식 트리 (대리자/수익률)는 쿼리 결과가 필요할 때까지 실제 쿼리를 생성하지 않습니다. 이렇게하면 결과를 가능한 한 작게 유지하면서 마지막 순간까지 쿼리를 작성하지 않고 쿼리를 작성할 수 있습니다. 예를 들어, LINQ에 우리가 SQL합니다 :
// no query is executed by this statement
var query = from product in db.Products
select product;
// a select count(*) from Products is executed by this statement
var productCount = query.Count();
// a select ... from Products where ID == 3 is executed by this statement
var products = query.First(p => p.ID == 3);
// a select .. from Products is executed by this statement
foreach (var product in query)
{
...
}
이의 좋은 한 discusion는 http://language-integrated-query.com/Linq_Deffered_Query.aspx 및 http://msdn.microsoft.com/en-us/library/bb308959.aspx에서 찾을 수 있습니다.
David Basarab과 동일합니다. 왜 연기 된 실행이 SQL과 전혀 관련이 없는지 구체적으로 SQL에 집중하고 있습니까? – Joren
나는 거의 항상 SQL 문맥에서 LINQ를 사용하기 때문에. 좀 더 일반적인 것으로 업데이트했습니다. – tvanfosson
평가가 잘못되었다는 것은 해당 항목을 사용할 때까지 Linq에서 SQL로 SQL Server 데이터베이스로 이동하지 않는다는 것을 의미합니다.
데이터베이스 테이블이 있습니다. 사용자라고 부르십시오.
이렇게하면
var userList = myDataContext.User;
데이터베이스를 아직 공격하지 않았습니다.
같은 것을 할 때.
foreach(var item in userList)
{
// do something with item
}
foreach가 실행을 위해 데이터베이스로 이동할 때 userList의 열거자를 가져올 때.
따라서 클라이언트 코드에서 사용될 때까지 평가가 연기됩니다.
지연된 평가는 SQL과 관련해서는 아무런 관련이 없습니다. LINQ의 다른 맛 또한 그것을 사용합니다. 질문은 SQL을 지정하지 않으므로보다 일반적인 설명을 제공해야합니다. – Joren
- 1. LINQ to SQL 지연 쿼리 실행 선택
- 2. 연관이없는 배열의 용어는 무엇입니까?
- 3. DataTable linq 쿼리 반복
- 4. LINQ 쿼리
- 5. Linq 쿼리
- 6. LINQ 쿼리
- 7. LINQ : 쿼리
- 8. 자동 완성을위한 최적의 쿼리 지연
- 9. 레거시 버그 복제 용어는 무엇입니까?
- 10. Java '타임 라인'라이브러리의 용어는 무엇입니까?
- 11. 필터 매핑에 사용되는 용어는 무엇입니까?
- 12. linq 쿼리 고유 날짜
- 13. Ef CTP5 : Linq 쿼리 도움말
- 14. 동적 linq 쿼리
- 15. JSON 및 LINQ 쿼리
- 16. LINQ-SQL-SQL 지연 목록을 serialize하는 방법
- 17. LINQ 내가 특정 LINQ 쿼리 도움이 필요 쿼리
- 18. Linq 쿼리 자동 컴파일
- 19. 쿼리 DataColumnCollection은 LINQ
- 20. 간단한 LINQ 쿼리
- 21. LINQ 쿼리 (그룹 BY)?
- 22. LINQ 쿼리 디버깅
- 23. 간소화 linq 쿼리
- 24. C#을 LINQ 쿼리
- 25. Linq 쿼리 IDictionaryEnumerator 가능합니까?
- 26. 다형성 LINQ 쿼리
- 27. ISET 모음의 Linq 쿼리
- 28. LINQ 쿼리 속도를 높이려면?
- 29. db4o는의 LINQ 쿼리
- 30. LINQ 구현 쿼리?
이 기사를 검색하고 읽으셨습니까? –
중복 된 http://stackoverflow.com/questions/456691/how-does-linq-defer-execution-when-in-a-using-statement –
이 질문은 중복되지 않습니다. 456691. 456691이 왜 using 문은 원인을 평가합니다. 이것은보다 일반적인 질문이지만 456691은 매우 구체적입니다. –