I run the same query using EF 6 and every time I see that GetExecutionPlan is running:
It is seen that GetExecutionPlan takes 93% of time and if I expand the method further I see that it is not taken from the cache but Compile method is run. Also I see that ObjectQuery.EnablePlanCaching is set to true, like it is by default.
Why is it not using the plan execution cache but compiling the query each time?