i have max Pool size = 100 , pooling =True , min pool size = 10
The min pool size = 10
setting means you will always have at least 10 connections once the first connection is opened. All connections will be sleeping when no query is currently executing. This is unrelated to EF or [Select].FirstOrdefault();
; you will see the same behavior with any query.
You may have more than 10 connections (up to the max pool size of 100) if over 10 queries were executed concurrently. The sleeping connections in excess of 10 will be closed after a few minutes of inactivity.