2009-06-18 3 views
8

데이터베이스에 LINQ 쿼리를 수행하는 여러 가지 메서드로 구성된 DAL이 있습니다.지연된 방식이 아닌 내 DAL에서 내 LINQ 쿼리를 실행할 수 있도록하려면 어떻게해야합니까?

반환하기 전에 IEnumberable 또는 유사한 것을 데이터베이스에서 실행하기 전에 결과가 사용될 때만 지연된 방식으로 실행되는 것이 아니라 이라는 LOOQ 쿼리가 실행되는지 확인해야합니다.

내가 호출 할 수 있음을 알고 있습니다. 내 메서드에서 강제로 내 결과에 내 결과를, 그러나 이것이 최선의 방법입니까?

+2

왜 지연 실행을 원하십니까? – Kev

답변

13

ToList 또는 ToArray을 호출하는 것이 실제로 전체 시퀀스를 실행하고 가져 오는 최상의 방법입니다 (시퀀스의 단일 요소에 대해 실행을 강제하는 다른 방법에 대해서는 아래 Randolpho의 설명을 참조하십시오).

연기 된 배출을 피하고자하는 특별한 이유가 있습니까?

+9

First(), Single() 또는 FirstOrDefault() 또는 SingleOrDefault()를 잊지 마세요. – Randolpho

+0

매우 사실이지만 전체 시퀀스를 가져오고 싶습니다. –

+1

나는 궁금해했다 .FirstOrDefault 및 유사한 메서드가 linq 쿼리 실행을 강제합니까? 단지 이것을 확인하고 싶었습니다 ... –

관련 문제