You specified your method as an extension method, so for the purposes of your example, you can ignore the first parameter in the method declaration.
Consequently, the only parameter to which you are connected, is the second int pKProgramID.
When you call this method (recuirsively), it expects an int, but you pass the lambda delegate ( p => p.PKProgramID == pKProgramID)
, , , !