쿼리에서 반환 한 시퀀스가 실제로 반복 될 때까지 Linq 쿼리가 실행되지 않습니다.메서드 내에서 Linq 쿼리를 사용하면 지연된 실행에 영향을 줍니까?
나는 반복적으로 사용되는 쿼리를 가지고 있으므로 메서드 내에서 그것을 encapuslate 할 것입니다. 지연된 실행을 방해하는지 알고 싶습니다.
Linq 쿼리를 다음과 같은 메서드로 캡슐화하면 쿼리는 메서드가 호출되는 줄 1이 아니라 2 줄에서 실행됩니다. 이 올바른지?
public IEnumerable<Person> GetOldPeopleQuery()
{
return personList.Where(p => p.Age > 60);
}
public void SomeOtherMethod()
{
var getWomenQuery = GetOldPeopleQuery().Where(p => p.Gender == "F"); //line 1
int numberOfOldWomen = getWomanQuery.Count(); //line 2
}
P. 어떤 차이가 있다면 Linq-To-EF를 사용하고 있습니다.
이 질문에 데이터베이스가 실제로 포함되어 있다는 표시는 없습니다. 하지만 그렇다면 비효율에 대해 당신과 동의합니다. –
고마워요! 그래서 대신 IQueryable을 사용할 것입니다. –
Yeonho