Это связано с тем, что вам нужно рассматривать его как abstract connection и использовать существующие методы CreateCommand
, CreateParameter
etc в базовом классе / интерфейсе. Или, если вы хотите избежать этой путаницы - что-то вроде «брезгливости» (или любого другого служебного уровня ADO.NET) избавит вас от боли.
Причина в том, что профилировщик «украшает» соединение, что, в свою очередь, означает, что он должен декорировать другие объекты и развернуть их в нужное время. Именно так можно профилировать ADO.NET таким образом