Linqクエリは、クエリによって返されるシーケンスが実際に繰り返されるまで実行されません。
繰り返し使用されるクエリがあるので、メソッド内にカプセル化します。延期された実行に干渉するかどうか知りたいのですが。
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
}
PS違いがあれば、Linq-To-EFを使用しています。